在线提交需求

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

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

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

image.png

更新字典键

📖 节点概述

更新字典中指定键的值(支持新增不存在的键)。支持通过路径语法(如 user/address/city)更新嵌套字典中的深层键,支持数组通配符 [*] 批量更新数组中每个对象的指定键,也支持数组索引 [0] 精确更新某个位置的值。可以同时更新多个键(批量更新),每个键可对应不同的新值(通过动态输入端口分别传入),或使用单个列表统一传入一组新值(合并输入模式)。提供可视化工具辅助选择键路径。该节点为纯数据节点,无执行端口。

💡 使用场景

  • 深度修改:修改嵌套 JSON 中的深层字段,无需逐层提取再赋值。
  • 批量修改:一次性更新多个不相关的键,减少节点数量。
  • 数组内对象字段批量更新:如将数组中所有用户的 status 字段改为 "active"
  • 动态键名:通过变量构建键路径,实现程序化更新。
  • 默认值填充:为缺失的键自动补充默认值(键不存在时会自动创建中间路径)。

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

节点有三个固定输入端口:原字典,以及根据配置动态变化的 新值 端口(或 新值列表 端口)。输出端口 新字典

场景案例:更新用户年龄(单键单值)

  1. 准备字典:在“原字典”文本框中输入 JSON:

    {"user": {"name": "张三", "age": 25}}
    

    或从上游连线传入字典对象。

  2. 设置键路径:在“键”输入框中填写 user/age(斜杠表示嵌套层级)。

  3. 设置新值:节点会动态生成一个名为 user/age 的输入端口(若“合并输入”未勾选)。在该端口输入 30(或连线传入)。

  4. 获取结果新字典 输出:

    {"user": {"name": "张三", "age": 30}}
    

批量更新多个键

  • 在“键”输入框中输入 JSON 数组:["user/name", "user/age"]
  • 节点会动态生成两个输入端口:user/nameuser/age,分别填入新值 "李四"28
  • 结果:{"user": {"name": "李四", "age": 28}}

合并输入模式

  • 勾选高级选项“合并输入”。
  • 在“键”中输入 ["a","b","c"]
  • 节点生成一个名为 新值列表 的输入端口,填入 [1,2,3](列表)。
  • 结果:依次将 a 更新为 1b 更新为 2c 更新为 3

数组通配符批量更新

  • 字典:{"users":[{"name":"A","status":"off"},{"name":"B","status":"off"}]}
  • 键:users/[*]/status
  • 新值:"active"
  • 结果:所有用户的 status 都变为 "active"

⚙️ 引脚与参数说明

📥 输入引脚(固定)

引脚名称数据类型说明
原字典DICT / STRING待更新的字典。支持字典对象、JSON 字符串或简易键值对格式(通过智能解析器)。
STRING要更新的键路径。支持斜杠分隔的嵌套路径(如a/b/c)、数组通配符 [*]、数组索引 [0]。也支持 JSON 数组格式传入多个键(如 ["key1","key2"])。

📥 输入引脚(动态)

引脚名称数据类型说明
{键名}ANY当“合并输入”关闭时,每个键会生成一个对应的输入端口,用于传入该键的新值。
新值列表LIST当“合并输入”开启时,该端口用于传入一个列表,列表长度应与键的数量一致,按顺序对应每个键的新值。

⚙️ 控件参数

控件名称类型说明
原字典多行文本框手动输入字典内容。连线时优先使用连线值。
单行文本框手动输入键路径(单键或 JSON 数组)。
合并输入复选框(高级)勾选后,所有新值通过一个统一的新值列表 端口传入(列表形式);不勾选则每个键生成独立的值端口。

📤 输出引脚

引脚名称数据类型说明
新字典DICT更新键值后的新字典(原字典不会被修改)。

🔧 路径语法详解

  • 斜杠分隔a/b/c 表示字典 a 下的键 b 下的键 c
  • 转义斜杠:如果键名本身包含斜杠,使用 \/ 转义,例如 http\/https
  • 数组通配符[*] 表示遍历数组中的每个元素,对每个元素执行更新。
  • 数组索引[0] 表示数组的首个元素(索引从 0 开始)。
  • 类型转换:路径中的数字会被自动转为整数键(适用于字典键为数字的情况);<int>123 可强制转为整数键;<bool>true 可转为布尔键。

⚠️ 注意事项

  • 原字典不变:节点返回更新后的新字典,不会修改原输入字典(内部为深拷贝,避免了副作用,但注意性能)。
  • 自动创建中间路径:如果更新路径中的某个中间键不存在,节点会自动创建空字典作为占位,确保更新可以执行。
  • 批量更新时键与值的匹配:在合并输入模式下,新值列表的长度应与键的数量一致;若长度不足,缺失的键将使用 None 作为新值;若长度超出,多余的值被忽略。
  • 数组通配符的限制[*] 只能遍历数组的一层,不能级联使用(如 [*]/[*] 不支持多层嵌套数组的批量更新)。
  • 动态端口的生命周期:修改“键”或“合并输入”后,节点会自动增删对应的输入端口,删除端口时对应连线也会断开。
  • 性能:对大型嵌套结构进行批量更新时,深拷贝可能消耗较多内存。但对于常规数据量,影响可忽略。

💎 小贴士

  • 点击眼睛图标(👁️)可以打开可视化面板,直观选择要更新的键路径,自动填入“键”输入框。
  • 刷新按钮(🔄)可手动同步动态端口(通常会自动同步,该按钮用于异常情况)。
  • 清空按钮(🗑️)可一键清空“键”输入框并收缩动态端口。
  • 使用数组通配符 [*] 可以实现像 users/[*]/status 这种批量修改。
  • 若需要同时更新多个不相关的键,推荐使用 JSON 数组格式的键路径,避免多次调用该节点。
  • 该节点是纯数据节点,无需执行信号,可在数据流中直接使用。
助理
咨询
微信
微信客服扫码添加微信
社群
QQ群扫码加入Q群
电话
免费咨询热线0371-67993886
顶部