我试图使用jq将JSON输出转换为CSV。
这里是输入。json(精简了很多—我可能有多达600个数组元素,但每个元素的数量相同):
{
"latitude": [39.582, 39.582, 39.582],
"longitude": [26.675, 26.675, 26.675],
"drivingDifficultyIndex": [0, 34, 34],
"iconCode": [31, 11, 11],
"observationTimeUtcIso": ["2016-06-26T00:20:00+0000", "2016-06-26T01:20:00+0000", "2016-06-26T02:20:00+0000"],
"precip1Hour": [0.0, 0.1, 0.5]
}
迄今为止,我的最佳尝试是:
jq --raw-output 'keys , .[] | @csv'
这使得
"drivingDifficultyIndex","iconCode","latitude","longitude","observationTimeUtcIso","precip1Hour"
39.582,39.582,39.582
26.675,26.675,26.675
0,34,34
31,11,11
"2016-06-26T00:20:00+0000","2016-06-26T01:20:00+0000","2016-06-26T02:20:00+0000"
0,0.1,0.5
How to convert arbirtrary simple JSON to CSV using jq?
给出了一些很好的提示,但我最终还是得到了行(如上所述)而不是列中的数据。
我想要的是:
"latitude","longitude","drivingDifficultyIndex","iconCode","observationTimeUtcIso","precip1Hour"
39.582, 26.675, 0, 31, \2016-06-26T00:20:00+0000\", 0
39.582, 26.675, 34, 11, \"2016-06-26T01:20:00+0000\", 0.1
39.582, 26.675, 34, 11, \"2016-06-26T02:20:00+0000\", 0.5
每个数组中有多达600个元素,我需要CSV文件为每个数组有一个单独的列;第2行向下需要换位。
有人能帮jq生产出我想要的产品吗?
谢谢
更新:
jq --raw-output 'keys_unsorted, map(.[0]) , map(.[1]), map(.[2]) |@csv'
给出了我想要的,例如上面的3个数组成员。但是,我如何才能使其工作,以考虑到更大(未知)数量的数组元素?