You need to enable JavaScript to run this app. 使用jq条件提取JSON层级不同位置的035与999标签子字段值
优惠活动
大模型
产品
解决方案
定价
更多

使用jq条件提取JSON层级不同位置的035与999标签子字段值

jq字段提取方案

错误原因

  • 原有写法遍历fields数组的单个元素时,同时尝试提取035和999的值,但fields下每个子元素仅对应一个标签,不会同时存在035和999字段,因此逐元素拼接的数组会大量出现null、空值
  • 未加安全访问符?时,访问不存在的035字段会返回null,对null执行迭代操作就会触发报错

正确实现

使用变量分别存储全局筛选后的目标值,再统一输出:

jq -r '
# 筛选符合条件的035子字段a存入变量
($fields[] | select(."035"?.ind1 == "0" and ."035"?.ind2 == "0") | ."035".subfields[].a) as $a
# 筛选999子字段s存入变量
| ($fields[] | select(."999") | ."999".subfields[].s) as $s
# 制表符拼接输出
| "\($a)\t\($s)"
' 输入文件路径

输出结果

ocm00000001projmusemuse13792	020d182f-ba5d-4bbe-a2eb-e4390aa0736c

内容的提问来源于stack exchange,提问作者Kyle Banerjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 12:00:00