在第 "How to convert arbitrary simple JSON to CSV using jq?" 条中,jq 命令会是什么来实现这一点?



我的json文件基本上与此相同,除了它都在一行上。我的目标是获得一个.csv文件,如下面列出的可能的输出。我使用curl命令获取json文件,我是否会使用jq命令获取.csv输出和curl命令的末尾?如有任何指导,我将不胜感激。

Input:
[
{"code": "NSW", "name": "New South Wales", "level":"state", "country": "AU"},
{"code": "AB", "name": "Alberta", "level":"province", "country": "CA"},
{"code": "ABD", "name": "Aberdeenshire", "level":"council area", "country": "GB"},
{"code": "AK", "name": "Alaska", "level":"state", "country": "US"}
]
Possible output:
code,name,level,country
NSW,New South Wales,state,AU
AB,Alberta,province,CA
ABD,Aberdeenshire,council area,GB
AK,Alaska,state,US

您所引用的文章中有几个示例,说明在本地文件中有JSON后可以做些什么。如果你想避免创建一个中间文件,你可以管的JSONcurl金桥直接命令,如一句话:

curl ... | jq -fr myprogram.jq

然而,在实践中,以这种方式盲目地输出curl有时会导致意想不到的失败,特别是当curl(在stdout上)产生的实际输出包含某种非json头时。如果不能避免这些额外的信息,那么通常可以通过在管道中添加一个文本处理命令(如sed)来删除它,例如:

curl ... | sed 1,2d | jq -fr myprogram.jq

最新更新