我正在尝试将大JSON
文件转换为CSV
格式。(我刚刚学习了使用方法,jq
所以我还是一个初学者)。
我已经成功地转换了大多数数据,但是,我陷入了一个数组。JSON
文件中的每个对象都应该转换为单行CSV
,但我无法使其正常工作。
我一直在尝试通过现有答案帮助自己:将JSON转换/导出为CSV
但是问题在于,该方法为数组中的每个项目写一行,不必要地重复信息。
我使用与上述答案相同的命令类型,唯一的区别是列的名称,但数组块...
例如,我可能有一个JSON
类似于以下文件:
{resources:[
{"id":"001","name"="Robert","items":[
{"label":"00A","name":"Pen"},
{"label":"00B","name":"Paper"}],
{"id":"002","name"="Bruce","items":[
{"label":"00A","name":"Pen"},
{"label":"00B","name":"Computer"},
{"label":"00C","name":"Headphones"}]
]
}
我想成为:
001,Robert,Pen,Paper,
002,Bruce,Pen,Computer,Headphones
我只需要name
数组的列
目前,结果是:
001,Robert,Pen
001,Robert,Paper
002,Bruce,Pen,
002,Bruce,Computer
002,Bruce,Headphones
问题是每个JSON
对象的实际数组长约30个项目,因此无法使用这种方式。
$ jq -r '.resources[] | [.id,.name,.items[].name] | @csv' < /tmp/b.json
"001","Robert","Pen","Paper"
"002","Bruce","Pen","Computer","Headphones"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句