使用jq bash转换json到CSV



有一个JSON数据像下面

"metric": {
"name" : "name1"
},
"values": [
[
16590879,
"0.043984349"
],
"values": [
[
16590876,
"0.043983444"
]
]

}}

写在jq下面,但没有给出正确的结果

jq -r '[.metric.name,(.values[] | map(.) | @csv)'

实际结果

[
"name1",
"16590879","0.043984349"",
"16590876","0.043983444"",
"16590874","0.043934345""

预期的结果

name1,16590879,0.043984349
name1,16590876,0.043983444
name2,16590874,0.043934345

提供的示例数据作为JSON是无效的,但假设它已按如下所示进行了调整,我们将得到:

< sample.json  jq -r '[.metric.name] + .values[] | @csv'
"name1",16590879,"0.043984349"
"name1",16590876,"0.043983444"

如果不需要引号,则使用join(",")而不是@csv


sample.json

{
"metric": {
"name": "name1"
},
"values": [
[
16590879,
"0.043984349"
],
[
16590876,
"0.043983444"
]
]
}

最新更新