极奇策RPA技术教程:检查键是否存在 (NodeDictHasKey) - 自动化开发与配置详细指南

检查键是否存在
📖 节点概述
检查字典中是否存在指定的键(支持嵌套路径)。支持单个键检查、批量键检查(通过 JSON 数组传入多个键),以及数组通配符 [*] 验证数组中每个对象是否都包含该键。输出结果可以是单个布尔值、多个独立布尔端口,或合并为一个布尔列表(通过“合并输出”选项)。提供可视化工具辅助选择键路径。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 字段存在性验证:在访问嵌套字典值前,先检查键是否存在,避免 KeyError。
- 数据格式校验:验证 API 响应或配置文件是否包含必需字段。
- 兼容性适配:根据字典中是否包含某个键,决定使用旧字段还是新字段。
- 数组元素一致性检查:检查数组中所有对象是否都包含某个属性(配合
[*]通配符)。 - 批量键检查:一次性验证多个字段是否存在,减少节点数量。
🎮 实战连线指南:如何正确使用它?
节点有两个输入端口:字典 和 键。输出端口根据配置动态变化。
场景案例:检查用户字典中是否包含 user/name 路径
- 准备字典:在“字典”文本框中输入 JSON:
{"user": {"name": "张三", "age": 25}} - 设置键路径:在“键”输入框中填写
user/name。 - 获取结果:由于未勾选“合并输出”,节点只有一个输出端口
是否存在,输出True。 - 后续使用:将布尔值用于条件判断节点,决定是否取值。
批量检查(独立端口):
- 在“键”中输入 JSON 数组:
["user/name", "user/age", "user/email"] - 节点会自动生成三个输出端口,分别对应每个键的检查结果。
- 输出端口名称与键路径相同(如
user/name端口输出True,user/email输出False)。
批量检查(合并输出):
- 勾选高级选项“合并输出”。
- 在“键”中输入
["user/name", "user/age", "user/email"] - 节点只生成一个输出端口
检查结果,输出布尔列表[True, True, False]。
数组通配符检查:
- 字典:
{"users": [{"name":"A"}, {"name":"B"}, {"age":25}]} - 键:
users/[*]/name - 结果:
False(因为第三个对象没有name键,所有对象都必须包含才返回 True)。
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 字典 | DICT / STRING | 目标字典。支持字典对象、JSON 字符串或简易键值对格式。 |
| 键 | STRING / LIST | 要检查的键路径。支持斜杠分隔的嵌套路径(如a/b/c)、数组通配符 [*]、数组索引 [0]。也支持 JSON 数组格式传入多个键(如 ["key1","key2"])。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 字典 | 多行文本框 | 手动输入字典内容。连线时优先使用连线值。 |
| 键 | 单行文本框 | 手动输入键路径(单键或 JSON 数组)。 |
| 合并输出 | 复选框(高级) | 勾选后,所有检查结果合并为一个布尔列表输出(端口名为检查结果);不勾选时,每个键生成独立的布尔输出端口。 |
📤 输出引脚(动态)
| 输出模式 | 引脚名称 | 数据类型 | 说明 |
|---|---|---|---|
| 单键模式(键非数组) | 是否存在 | BOOL | 单个布尔值,表示该键路径是否存在。 |
| 多键模式(独立端口) | {键路径} | BOOL | 每个键路径对应一个独立输出端口,端口名与键路径相同(过长会被截断),输出该键是否存在。 |
| 多键模式(合并输出) | 检查结果 | LIST | 按输入顺序输出布尔值列表。 |
🔧 路径语法与检查规则
- 斜杠分隔:
a/b/c表示检查字典a下的键b下的键c是否存在。 - 转义斜杠:如果键名本身包含斜杠,使用
\/转义,例如http\/https。 - 数组通配符:
[*]表示检查数组中的每一个元素是否都包含后续路径。例如users/[*]/name要求所有 users 中的对象都有name键才返回True。 - 数组索引:
[0]表示检查数组中指定索引位置的元素是否包含后续路径。 - 类型转换:路径中的数字会被自动转为整数键;
<int>123可强制转为整数键;<bool>true可转为布尔键。
通配符返回值规则:
- 如果数组为空,
[*]检查返回False。 - 如果数组中至少有一个元素不满足后续路径条件,返回
False。 - 只有当所有元素都满足时,返回
True。
⚠️ 注意事项
- 原字典不变:节点仅读取字典,不修改原数据。
- 键不存在时:返回
False,不会抛出异常。 - 批量键的端口动态变化:修改“键”内容或“合并输出”开关后,节点会自动增删输出端口。删除端口时,下游连线会自动断开,请留意。
- 数组通配符的严格性:
[*]执行的是“全称判断”(所有元素都满足才为 True)。如需“存在性判断”(至少一个元素满足),请使用【列表操作】相关节点或多次调用本节点。 - 性能:检查操作遍历路径,时间复杂度与路径深度和数组大小相关。对于大型嵌套结构,建议合理设计检查逻辑。
- 可视化工具:点击 👁️ 图标可以打开面板,直观浏览字典结构并选择要检查的键,自动填入“键”输入框。
💎 小贴士:
- 单个键检查时,输出端口名称为“是否存在”,可直接连接【条件判断】节点。
- 多键独立端口模式适合每个键分别连接到不同的下游逻辑。
- 合并输出模式适合将结果统一存储到变量或批量处理。
- 使用
[*]可以快速验证数组元素的结构一致性,常用于数据质量检查。- 该节点是纯数据节点,无需执行信号,可在数据流中直接使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

