极奇策RPA技术教程:获取字典的键 (NodeDictGetKeys) - 自动化开发与配置详细指南

获取字典的键
📖 节点概述
获取字典中指定路径下的所有键名(keys)。支持嵌套路径(如 user/profile),可以通过斜杠语法深入到子字典中提取其键名。也支持数组通配符 [*] 获取数组中每个字典的键名集合(返回列表的列表)。目标路径留空时,默认提取根字典的所有键。支持批量路径输入(JSON 数组),并根据“合并输出”选项返回单个列表或独立端口。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 动态字段发现:在不清楚字典具体结构时,获取所有键名用于后续遍历或动态处理。
- 嵌套结构分析:获取深层子字典的字段名,用于生成表单或文档。
- 数据对比:比较两个字典的键集合是否一致。
- API 响应探测:从复杂的 JSON 响应中快速获取某个嵌套节点的字段列表。
- 批量提取:一次性获取多个不同路径下的键集合,用于并行处理。
🎮 实战连线指南:如何正确使用它?
节点有两个输入端口:字典 和 目标路径。输出端口根据配置动态变化。
场景案例:获取根字典的所有键
- 准备字典:在“字典”文本框中输入 JSON:
{"name": "张三", "age": 25, "city": "北京"} - 目标路径留空:不填写任何内容。
- 获取结果:
提取的键输出["name", "age", "city"]。
嵌套路径示例:
- 字典:
{"user": {"profile": {"name": "张三", "email": "test@ex.com"}, "settings": {"theme": "dark"}}} - 目标路径:
user/profile - 输出:
["name", "email"]
数组通配符示例:
- 字典:
{"users": [{"name": "A", "age": 20}, {"name": "B", "age": 25}]} - 目标路径:
users/[*] - 输出:
[["name", "age"], ["name", "age"]](每个字典的键列表) - 如果后续需要合并去重,可使用【列表展平】或【列表去重】节点。
批量路径模式:
- 目标路径:
["user/profile", "user/settings"](JSON 数组) - 勾选“合并输出” → 输出端口为
提取结果,输出列表的列表:[["name","email"], ["theme"]] - 不勾选“合并输出” → 生成两个独立输出端口,分别输出各自键列表。
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 字典 | DICT / STRING | 目标字典。支持字典对象、JSON 字符串或简易键值对格式。 |
| 目标路径 | STRING / LIST | 要获取键名的路径。支持斜杠分隔的嵌套路径(如a/b)、数组通配符 [*]、数组索引 [0]。留空则获取根字典的所有键。也支持 JSON 数组格式传入多个路径。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 字典 | 多行文本框 | 手动输入字典内容。连线时优先使用连线值。 |
| 目标路径 | 单行文本框 | 手动输入路径(单路径或 JSON 数组)。留空表示根字典。 |
| 合并输出 | 复选框(高级) | 勾选后,所有路径的结果合并为一个列表输出(端口名为提取结果),每个元素是对应路径的键列表;不勾选时,每个路径生成独立的输出端口。 |
📤 输出引脚(动态)
| 输出模式 | 引脚名称 | 数据类型 | 说明 |
|---|---|---|---|
| 单路径(路径非数组) | 提取的键 | LIST | 单个键名列表(字符串列表)。 |
| 多路径(独立端口) | {路径} | LIST | 每个路径对应一个独立输出端口,输出该路径下的键名列表。 |
| 多路径(合并输出) | 提取结果 | LIST | 按输入顺序返回键名列表的列表。 |
🔧 路径解析与提取规则
- 斜杠分隔:
a/b表示进入字典a下的键b,然后获取b的键名。 - 数组通配符:
[*]作用于数组,返回每个元素的键名列表(列表的列表)。例如users/[*]返回每个 user 字典的键名列表。 - 数组索引:
[0]只获取指定索引元素的键名列表。 - 空路径:返回当前字典(或列表的首个元素如果是字典)的所有键名。
- 类型转换:路径中的数字会被自动转为整数键;
<int>123可强制转为整数键;<bool>true可转为布尔键。
返回值格式:
- 如果路径指向一个字典,返回该字典的所有键(字符串列表)。
- 如果路径指向一个列表且使用了通配符
[*],返回列表的列表(每个元素是每个子字典的键列表)。 - 如果路径指向一个列表且未使用通配符(如
users),会尝试将列表的首个元素视为字典并返回其键名(容错行为)。 - 如果路径无法定位到字典(例如中间某个键不是字典),返回空列表
[]。
⚠️ 注意事项
- 原字典不变:节点只读取数据,不修改原字典。
- 目标路径为空时:输出根字典的键名。如果根字典是空字典,输出空列表。
- 数组通配符的结果:返回的是列表中每个子项的键名列表,可能包含重复(如果子项结构相同)。如需唯一键集合,可后续使用【列表展平】+【列表去重】。
- 批量路径端口动态变化:修改“目标路径”或“合并输出”后,输出端口会自动增删,下游连线可能断开,请留意。
- 性能:提取键名需要遍历路径,对大型字典和深路径有一定开销,但一般可接受。
- 可视化工具:点击 👁️ 图标打开面板,可以直观浏览字典结构并选择要提取键的层级,自动填入目标路径。
💎 小贴士:
- 获取根字典键名是数据探索的常用功能,留空“目标路径”即可。
- 使用数组通配符
[*]可以快速查看数组中所有对象是否拥有相同的字段集合。- 结合【字典大小】节点,可以获取键名的数量。
- 如果需要获取键的同时也获取值,请使用【字典项遍历】或【解构字典】节点。
- 该节点是纯数据节点,无需执行信号,可在数据流中直接使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

