如何使用jq提取JSON指定字段并导出带表头的CSV文件
jq导出指定字段CSV的实现方法
正确执行命令
jq -r '["STK_NUM", "DLR_COST", "RTL_AMT"], (.[] | [.STK_NUM, .DLR_COST, .RTL_AMT]) | join(",")' HSEitm.json > result.csv
命令逻辑说明
- 开头的
["STK_NUM", "DLR_COST", "RTL_AMT"]手动构造表头数组,严格匹配需要的表头顺序 .[] | [.STK_NUM, .DLR_COST, .RTL_AMT]遍历JSON数组中的每一个对象,按顺序提取三个指定字段的值,拼成单行数组join(",")将每一行的数组元素用逗号拼接为CSV格式的字符串-r参数输出原始文本,避免jq默认给字符串结果加多余的双引号- 末尾的
> result.csv会把执行结果直接写入CSV文件
特殊场景兼容
如果字段值中存在逗号、双引号等CSV特殊字符,可以改用以下带转义逻辑的命令,避免CSV格式错乱:
jq -r '["STK_NUM", "DLR_COST", "RTL_AMT"], (.[] | [.STK_NUM, .DLR_COST, .RTL_AMT]) | map(@csv) | .[]' HSEitm.json > result.csv
内容的提问来源于stack exchange,提问作者newbie
相关产品推荐
相关产品推荐

