使用jq将curl获取的单行JSON转换为CSV格式的命令是什么
问题解答
1. 是否可以直接拼接在curl命令后
完全可以。curl默认会将接口响应内容输出到标准输出,只需通过管道符|将输出传递给jq处理即可,最终还可以直接重定向保存为CSV文件。
2. 对应转换的jq命令
基础版(适配你给出的示例场景,字段无特殊字符时可用)
jq -r '["code","name","level","country"], (.[] | [.code, .name, .level, .country]) | join(",")'
参数说明:
-r:输出原始字符串,避免jq默认给结果加双引号- 第一组数组
["code","name","level","country"]用于生成CSV表头 .[]遍历JSON数组中的每一个对象,提取对应字段值组成数组后用,拼接为行内容
标准CSV兼容版(字段含逗号、双引号等特殊字符时推荐使用)
如果你的数据字段可能包含特殊字符,用内置的@csv过滤器自动完成转义,完全符合CSV规范:
jq -r '["code","name","level","country"], (.[] | [.code, .name, .level, .country]) | @csv'
3. 完整的curl拼接命令示例
curl 你的实际接口请求地址 | jq -r '["code","name","level","country"], (.[] | [.code, .name, .level, .country]) | join(",")' > 输出文件.csv
如果需要标准兼容格式,把上述命令中jq部分的join(",")替换为@csv即可。
内容的提问来源于stack exchange,提问作者newbie
相关产品推荐
相关产品推荐

