极奇策RPA技术教程:更新字典键名(key) (NodeDictUpdateKeyName) - 自动化开发与配置详细指南

更新字典键名(key)
📖 节点概述
重命名字典中的指定键(支持嵌套路径)。通过路径语法(如 user/name)可以重命名深层嵌套的键,支持数组通配符 [*] 批量重命名数组中每个对象的某个键,也支持数组索引 [0] 精确修改某个位置元素的键。可以同时重命名多个键(批量操作),每个旧键对应一个新键名(通过动态输入端口分别传入),或使用单个列表统一传入一组新键名(合并输入模式)。提供可视化工具辅助选择旧键路径。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 字段重命名:API 响应中的字段名与前端期望不一致时,批量重命名。
- 数据标准化:将不同数据源的字段名统一为规范名称(如
user_name→userName)。 - 结构重构:深层嵌套字段改名,无需手动解构再构造。
- 数组内字段批量改名:如将数组中每个对象的
oldField改为newField。 - 兼容性适配:数据库字段变更后,在流程中动态重命名以匹配旧逻辑。
🎮 实战连线指南:如何正确使用它?
节点有三个固定输入端口:原字典、键,以及根据配置动态变化的 新键名 端口(或 新键名列表 端口)。输出端口 新字典。
场景案例:重命名用户字典中的 name 为 fullName
准备字典:在“原字典”文本框中输入 JSON:
{"user": {"name": "张三", "age": 25}}或从上游连线传入字典对象。
设置旧键路径:在“键”输入框中填写
user/name(斜杠表示嵌套层级)。设置新键名:节点会动态生成一个名为
user/name的输入端口(若“合并输入”未勾选)。在该端口输入fullName(或连线传入)。获取结果:
新字典输出:{"user": {"fullName": "张三", "age": 25}}
批量重命名多个键:
- 在“键”中输入 JSON 数组:
["user/name", "user/age"] - 节点生成两个端口:
user/name和user/age,分别填入fullName和yearsOld。 - 结果:
{"user": {"fullName": "张三", "yearsOld": 25}}
合并输入模式:
- 勾选“合并输入”。
- 在“键”中输入
["a","b","c"]。 - 节点生成一个名为
新键名列表的端口,填入["x","y","z"]。 - 结果:字典中的键
a→x,b→y,c→z,其余不变。
数组通配符批量重命名:
- 字典:
{"users":[{"old":"A"},{"old":"B"}]} - 键:
users/[*]/old - 新键名:
new - 结果:
{"users":[{"new":"A"},{"new":"B"}]}
⚙️ 引脚与参数说明
📥 输入引脚(固定)
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 原字典 | DICT / STRING | 待操作的字典。支持字典对象、JSON 字符串或简易键值对格式。 |
| 键 | STRING | 要重命名的旧键路径。支持斜杠分隔的嵌套路径(如a/b/c)、数组通配符 [*]、数组索引 [0]。也支持 JSON 数组格式传入多个旧键(如 ["oldKey1","oldKey2"])。 |
📥 输入引脚(动态)
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| {旧键名} | STRING | 当“合并输入”关闭时,每个旧键会生成一个对应的输入端口,用于传入该键的新键名(字符串)。 |
| 新键名列表 | LIST | 当“合并输入”开启时,该端口用于传入一个字符串列表,列表长度应与旧键数量一致,按顺序对应每个旧键的新键名。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 原字典 | 多行文本框 | 手动输入字典内容。连线时优先使用连线值。 |
| 键 | 单行文本框 | 手动输入旧键路径(单键或 JSON 数组)。 |
| 合并输入 | 复选框(高级) | 勾选后,所有新键名通过一个统一的新键名列表 端口传入(列表形式);不勾选则每个旧键生成独立的新键名端口。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 新字典 | DICT | 重命名键后的新字典(原字典不会被修改)。 |
🔧 路径语法详解
- 斜杠分隔:
a/b/c表示字典a下的键b下的键c。 - 转义斜杠:如果键名本身包含斜杠,使用
\/转义,例如http\/https。 - 数组通配符:
[*]表示遍历数组中的每个元素,对每个元素执行重命名。 - 数组索引:
[0]表示数组的首个元素(索引从 0 开始)。 - 类型转换:路径中的数字会被自动转为整数键(适用于字典键为数字的情况);
<int>123可强制转为整数键;<bool>true可转为布尔键。
⚠️ 注意事项
- 原字典不变:节点返回重命名后的新字典,原输入字典保持不变(内部进行深拷贝,避免副作用,注意性能)。
- 键不存在时:如果指定的旧键路径不存在,重命名操作被忽略(不报错,字典不变)。
- 新键名冲突:如果新键名在当前层级已经存在,重命名会覆盖该已有键的值(旧键的值会覆盖到新键上,旧键被删除)。请确保新键名不与同级其他键名冲突。
- 批量操作时键与键名的匹配:在合并输入模式下,新键名列表的长度应与旧键数量一致;若长度不足,缺失的键不会被重命名;若长度超出,多余的键名被忽略。
- 数组通配符行为:
[*]仅影响数组中的字典对象,不影响数组本身。重命名后,数组结构保持不变,仅内部键名更改。 - 动态端口的生命周期:修改“键”或“合并输入”后,节点会自动增删对应的输入端口,删除端口时对应连线也会断开。
- 性能:对大型嵌套结构进行批量重命名时,深拷贝可能消耗较多内存。但对于常规数据量,影响可忽略。
💎 小贴士:
- 点击眼睛图标(👁️)可以打开可视化面板,直观选择要重命名的旧键,自动填入“键”输入框。
- 刷新按钮(🔄)可手动同步动态端口(通常会自动同步)。
- 清空按钮(🗑️)可一键清空“键”输入框并收缩动态端口。
- 使用数组通配符
[*]可以一次性重命名数组中所有对象的某个字段。- 若只需要修改键的值而不改名,请使用【更新字典键】节点。
- 该节点是纯数据节点,无需执行信号,可在数据流中直接使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

