在线提交需求

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

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

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

image.png

检查键是否存在

📖 节点概述

检查字典中是否存在指定的键(支持嵌套路径)。支持单个键检查、批量键检查(通过 JSON 数组传入多个键),以及数组通配符 [*] 验证数组中每个对象是否都包含该键。输出结果可以是单个布尔值、多个独立布尔端口,或合并为一个布尔列表(通过“合并输出”选项)。提供可视化工具辅助选择键路径。该节点为纯数据节点,无执行端口。

💡 使用场景

  • 字段存在性验证:在访问嵌套字典值前,先检查键是否存在,避免 KeyError。
  • 数据格式校验:验证 API 响应或配置文件是否包含必需字段。
  • 兼容性适配:根据字典中是否包含某个键,决定使用旧字段还是新字段。
  • 数组元素一致性检查:检查数组中所有对象是否都包含某个属性(配合 [*] 通配符)。
  • 批量键检查:一次性验证多个字段是否存在,减少节点数量。

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

节点有两个输入端口:字典。输出端口根据配置动态变化。

场景案例:检查用户字典中是否包含 user/name 路径

  1. 准备字典:在“字典”文本框中输入 JSON:
    {"user": {"name": "张三", "age": 25}}
    
  2. 设置键路径:在“键”输入框中填写 user/name
  3. 获取结果:由于未勾选“合并输出”,节点只有一个输出端口 是否存在,输出 True
  4. 后续使用:将布尔值用于条件判断节点,决定是否取值。

批量检查(独立端口)

  • 在“键”中输入 JSON 数组:["user/name", "user/age", "user/email"]
  • 节点会自动生成三个输出端口,分别对应每个键的检查结果。
  • 输出端口名称与键路径相同(如 user/name 端口输出 Trueuser/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)。如需“存在性判断”(至少一个元素满足),请使用【列表操作】相关节点或多次调用本节点。
  • 性能:检查操作遍历路径,时间复杂度与路径深度和数组大小相关。对于大型嵌套结构,建议合理设计检查逻辑。
  • 可视化工具:点击 👁️ 图标可以打开面板,直观浏览字典结构并选择要检查的键,自动填入“键”输入框。

💎 小贴士

  • 单个键检查时,输出端口名称为“是否存在”,可直接连接【条件判断】节点。
  • 多键独立端口模式适合每个键分别连接到不同的下游逻辑。
  • 合并输出模式适合将结果统一存储到变量或批量处理。
  • 使用 [*] 可以快速验证数组元素的结构一致性,常用于数据质量检查。
  • 该节点是纯数据节点,无需执行信号,可在数据流中直接使用。
助理
咨询
微信
微信客服扫码添加微信
社群
QQ群扫码加入Q群
电话
免费咨询热线0371-67993886
顶部