2.3 KiB
2.3 KiB
Text Custom Extract - 文本结构化提取
节点功能: Text Custom Extract 从 JSON 或类 JSON 文本中按目标 key 提取值。支持稳健的输入清理、多重解析回退、增强键名同义处理、可选精确匹配与基于标签的过滤。
输入
| 参数名称 | 入端选择 | 数据类型 | 默认值 | 取值范围 | 描述 |
|---|---|---|---|---|---|
json_data |
- | STRING | `` | - | JSON 或类 JSON 文本;会清理代码块包裹与 JSON 外的冗余内容。 |
key |
- | STRING | zh |
- | 目标键名(支持同义变体)。 |
precision_match |
- | COMBO | disabled |
disabled / enabled |
当启用时采用精确匹配;否则进行不区分大小写且兼容同义变体的匹配。 |
label_filter |
- | STRING | `` | - | 可选的逗号分隔标签过滤(支持中英文)。 |
输出
| 输出名称 | 数据类型 | 描述 |
|---|---|---|
string |
STRING | 提取的值;当为数值列表时以逗号连接;输入为对象数组时各项以换行拼接。 |
功能说明
- 输入清理:移除 Markdown 代码块包裹,截取首个完整的 JSON 片段。
- 多策略解析:尝试
json.loads,回退到ast.literal_eval、引号规范化与正则键值提取。 - 同义键增强:内置
bbox、label、confidence、x、y、width、height、zh、en等变体。 - 标签过滤:对对象或对象数组按
label字段进行可选过滤。 - 精确匹配:启用时严格按键名匹配;禁用时进行同义与不区分大小写匹配。
- 值格式化:数值列表以逗号连接;其他列表按字符串化输出。
- 核心逻辑:清理;解析;同义;查找;格式;过滤;主执行。
典型用法
- 简单提取:设置
key=zh从对象或数组中提取中文文本。 - 同义匹配:设置
key=bbox兼容匹配bbox、box、bounding_box等变体。 - 标签过滤:设置
label_filter=person,cat仅保留标签包含person或cat的条目。 - 精确匹配:设置
precision_match=enabled仅按提供的键名进行精确查找。
注意与建议
- 节点接受被 Markdown 代码块包裹的 JSON,并自动裁剪 JSON 外的冗余文本。
- 当输入为对象数组时,匹配到的值会以换行拼接形成输出。