You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq的JSONPath语法实现JSON转CSV并筛选type为secondary的数据

jq命令错误排查与修复

错误原因

原命令存在3个核心问题:

  1. 语法混用:[?type=="secondary"]是JMESPath的筛选语法,并不符合jq的语法规范,jq的条件筛选需使用select()函数
  2. 路径顺序错误:待处理JSON的最外层是colors数组,你需要先遍历.colors下的元素,再针对每个元素的type字段做筛选,原命令的筛选顺序完全颠倒
  3. 未兼容字段缺失:测试数据中white对应的条目没有type字段,直接判断会触发字段不存在的报错,可加?做可选兼容

修正后命令

如果确定只保留明确存在type字段且值为secondary的条目,使用以下命令:

jq -r '["color","category","type"], (.colors[] | select(.type == "secondary") | [.color, .category, .type]) | @csv' test.json > test.csv

如果需要兼容无type字段的条目避免报错,修改select部分为select(.type? == "secondary")即可。

输出结果

执行后得到的test.csv内容如下:

"color","category","type"
"green","hue","secondary"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:54:07