极奇策RPA技术教程:字典合并 (NodeDictMerge) - 自动化开发与配置详细指南

字典合并
📖 节点概述
将多个字典按顺序合并成一个新字典。当多个字典中存在相同键时,后合并的字典会覆盖先合并的字典中的值。支持动态增减输入端口(右键菜单),至少 2 个字典。每个输入端口可以接受字典对象、JSON 字符串、Python 字典字面量、URL Query 字符串或简易键值对格式(多行/逗号分隔)。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 配置覆盖:将默认配置字典与用户自定义配置字典合并,用户配置覆盖默认值。
- 数据聚合:将从多个 API 获取的字典数据合并为一个完整字典。
- 默认值填充:用默认字典合并用户输入,确保所有必需字段存在。
- 动态参数构造:将多个键值对来源(如查询参数、表单数据、文件配置)合并成统一的参数字典。
- 增量更新:将更新字典与原始字典合并,生成新版本。
🎮 实战连线指南:如何正确使用它?
节点通过动态端口接收至少 2 个字典,按端口顺序(字典 1 → 字典 2 → 字典 3 ...)依次合并,后合并的键覆盖前面的。
场景案例:合并用户基本信息与附加信息
准备字典 1(基础信息):在“字典 1”文本框中输入:
{"name": "张三", "age": 25}准备字典 2(附加信息,且年龄有更新):
{"city": "北京", "age": 26}获取结果:
合并字典输出:{"name": "张三", "age": 26, "city": "北京"}(
age被字典 2 覆盖为 26)
多字典合并示例:
- 字典 1:
{"a":1, "b":2} - 字典 2:
{"b":3, "c":4} - 字典 3:
{"c":5} - 结果:
{"a":1, "b":3, "c":5}
覆盖行为验证:后出现的字典中的键会覆盖之前字典中的同名键。
⚙️ 引脚与参数说明
📥 输入引脚(动态)
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 字典 1, 字典 2, ... | DICT / STRING | 待合并的字典。至少 2 个,可通过右键菜单动态增删。每个端口支持字典对象、JSON 字符串、Python 字面量、URL Query 或简易键值对格式(通过【创建字典】节点相同的解析器)。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 字典 1, 字典 2, ... | 多行文本框 | 每个动态端口对应一个多行文本框,用于手动输入字典内容。连线时优先使用连线值。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 合并字典 | DICT | 按顺序合并所有输入字典后的新字典对象。 |
🔧 合并规则
- 后键覆盖前键:当两个字典有相同键时,后面字典的值会覆盖前面字典的值。
- 浅合并:只合并首层键值对,不会递归合并嵌套字典。例如:
- 字典 1:
{"a": {"x": 1}} - 字典 2:
{"a": {"y": 2}} - 结果:
{"a": {"y": 2}}(整个嵌套字典被覆盖,不是深度合并) - 若需要深度合并,请使用【字典深度合并】节点(若有)或手动实现。
- 字典 1:
- 输入格式支持:节点内部使用与【创建字典】相同的
_smart_parse_dict解析器,支持 JSON、Python 字面量、URL Query、多行/逗号分隔的key:value或key=value格式。
⚠️ 注意事项
- 原字典不变:节点返回合并后的新字典,不会修改任何输入字典。
- 动态端口管理:右键单击节点可添加或删除输入端口。删除端口时对应的连线会自动断开。未连线的端口若没有手动输入内容,会被视为空字典(不影响合并结果)。
- 解析失败处理:如果某个端口的值无法解析为字典,会被视为空字典
{},不会导致流程中断。 - 性能:合并操作时间复杂度 O(n * m),n 为输入字典个数,m 为每个字典的平均键值对数量。
- 嵌套结构:如前所述,合并是浅层的。若需要深合并,请结合后续节点手动处理或使用表达式。
💎 小贴士:
- 点击节点工具栏的眼睛图标(👁️)可以实时预览当前所有输入端口的字典合并结果,方便调试。
- 合并常用于为请求参数添加默认值:先放默认字典,后放用户字典。
- 如果需要将多个字典合并后用于【字典取值】或【变量设置】,可以直接连接输出端口。
- 由于是纯数据节点,无需执行信号,可在数据流中随时使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

