在线提交需求

请留下您的联系方式,我们的专家将在 24 小时内与您沟通。

极奇策RPA技术教程:列表展平 (NodeListFlatten) - 自动化开发与配置详细指南

极奇策技术团队更新于 2026-08-260 阅读

image.png

列表展平

📖 节点概述

将嵌套的多层列表完全展平为一维列表。输入可以是列表对象、JSON 数组字符串或多行文本(每行一个元素),支持任意深度的嵌套。输出为展平后的列表。该节点为纯数据节点,无执行端口。

💡 使用场景

  • 数据归一化:将层级不一的树形数据结构转为平坦列表,便于后续处理。
  • JSON 解析后处理:解析嵌套 JSON 数组后,提取所有叶子节点值。
  • 矩阵转列表:将二维矩阵(如 [[1,2],[3,4]])转为 [1,2,3,4]
  • 配置合并:将多层分组配置统一展开为单层列表。
  • 递归数据收集:从具有层级关系的数据中收集所有底层元素。

🎮 实战连线指南:如何正确使用它?

节点有一个输入端口 嵌套列表 和一个输出端口 展平列表

场景案例:展平多层嵌套的用户分组列表

  1. 准备嵌套列表:假设用户分组结构为 ["admin", ["editor", "viewer"], ["guest", ["vip"]]],可以:
    • 从上游节点传入列表对象,或
    • 在“嵌套列表”文本框输入 JSON 字符串:["admin", ["editor", "viewer"], ["guest", ["vip"]]]
  2. 获取结果展平列表 输出 ["admin", "editor", "viewer", "guest", "vip"]
  3. 后续使用:将展平后的列表用于权限校验或展示。

手动多行文本输入

  • 如果输入为多行文本,每行会被视为一个元素(不会自动解析嵌套)。例如输入:

    [1,2]
    [3,4]
    

    由于每行是字符串,展平后输出 ["[1,2]", "[3,4]"]。如需解析嵌套,建议使用 JSON 格式。

递归展平示例

  • 输入:[1, [2, [3, [4]]]] → 输出:[1, 2, 3, 4]
  • 输入:[[[1]]] → 输出:[1]

⚙️ 引脚与参数说明

📥 输入引脚

引脚名称数据类型说明
嵌套列表LIST / STRING待展平的嵌套列表。可以是列表对象、JSON 字符串(如[1,[2,3]])或多行文本(每行一个元素,不自动解析嵌套)。

⚙️ 控件参数

控件名称类型说明
嵌套列表多行文本框手动输入列表内容(JSON 格式或每行一个元素)。连线时优先使用连线值。

📤 输出引脚

引脚名称数据类型说明
展平列表LIST完全展平后的一维列表。

🔧 解析与展平逻辑

  1. 输入解析_to_list 方法):
    • 如果输入已经是列表或元组,直接使用。
    • 如果是 JSON 数组字符串(如 "[1,2]"),解析为列表。
    • 如果是 Python 字面量(如 [1,2]),通过 ast.literal_eval 解析。
    • 否则,按换行符拆分为字符串列表(每行一个元素)。
  2. 递归展平_flatten 方法):
    • 遍历输入列表的每个元素。
    • 如果元素是列表或元组,递归展平后追加到结果。
    • 否则直接追加到结果。
  3. 返回最终的一维列表。

⚠️ 注意事项

  • 支持任意深度:递归展平可以处理任意层级的嵌套。
  • 元素类型保留:展平后,非列表元素的原类型保持不变(数字、字符串、字典等)。
  • 空列表:输入为空列表时,输出也为空列表。
  • JSON 输入要求:JSON 字符串必须使用双引号,例如 [1,2] 而非 [1,2](单引号会解析失败,会回退到按行拆分)。
  • 多行文本限制:如果使用多行文本输入,不会自动解析嵌套(每行被视为普通字符串)。需要解析嵌套请使用 JSON 格式。
  • 不可哈希元素:展平操作不涉及哈希,因此可以处理嵌套字典、列表等(但字典不会被展平内部键值对,仅保留字典对象本身)。
  • 性能:对于深度很大或元素极多的嵌套列表,递归展平可能消耗较多栈空间和时间。Python 递归深度默认约 1000,过深嵌套可能导致递归错误。

💎 小贴士

  • 如果需要展平后的列表用于后续集合操作(如去重、排序),可以直接连接对应节点。
  • 展平常用于将多级 JSON 数据中的特定字段收集到一个列表中。
  • 配合【列表合并】节点,可以先将多个嵌套列表合并,再一次性展平。
  • 若仅需展平一层(即去掉最外层括号),可以使用【列表合并】节点代替(将多个子列表合并)。
  • 该节点是纯数据节点,可在数据流中随时调用,无需执行信号。
助理
咨询
微信
微信客服扫码添加微信
社群
QQ群扫码加入Q群
电话
免费咨询热线0371-67993886
顶部