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

如何使用Linux Jq工具将嵌套JSON转换为CSV格式用于数据分析

jq转换嵌套JSON流为CSV实现指南

最终可直接运行命令

jq -r '["name","weight","State"], (. as $parent | .details[] | [$parent.name, .weight, .State]) | join(",")' new.json > output.csv

分步实现讲解

1. 基础参数说明

命令开头的-r是jq的原始输出参数,作用是去掉输出内容默认带的双引号,符合CSV纯文本格式要求。

2. 表头生成逻辑

表达式第一部分["name","weight","State"]是手动构造CSV表头数组,后续会被拼接为第一行表头。

3. 嵌套字段关联逻辑

  • . as $parent:将当前正在处理的顶层JSON对象存入临时变量$parent,后续展开嵌套数组时也能获取到顶层的name字段
  • .details[]:展开details数组,把数组内的每一个对象单独拆分为一条待处理数据
  • [$parent.name, .weight, .State]:对每一条拆分后的details对象,组装为包含顶层姓名、当前体重、当前州名的数组,完成跨层级字段关联

4. CSV格式拼接

最后的join(",")会把每一行的字段数组用逗号拼接为字符串,最终输出符合要求的CSV格式内容。


边界场景优化

如果你的字段值中本身包含逗号、双引号等CSV特殊字符,可以将join(",")替换为jq内置的@csv格式化函数,自动完成特殊字符转义:

jq -r '["name","weight","State"], (. as $parent | .details[] | [$parent.name, .weight, .State]) | @csv' new.json > output.csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:09:02