从嵌套结构中生成记录并转换为 CSV
Generate records out of nested structure and convert to CSV
我有以下 JSON 要转换为 CSV。它是一个数组的数组,其中包含一个对象和一个对象数组。
[
[
{
"name": "A",
"DATA": [
{
"V": 192.1,
"Q": 0,
"T": "2020-06-12T16:52:10.000Z"
},
{
"V": 175.2,
"Q": 0,
"T": "2020-06-12T16:53:50.000Z"
}
]
},
{
"name": "B",
"DATA": [
{
"V": 176,
"Q": 0,
"T": "2020-06-12T16:53:25.000Z"
},
{
"V": 122.8,
"Q": 0,
"T": "2020-06-12T16:53:30.000Z"
},
{
"V": 122.01,
"Q": 0,
"T": "2020-06-12T16:55:35.000Z"
}
]
}
]
]
想要的是:
A,192.1,0,2020-06-12T16:52:10.000Z
A,175.2,0,2020-06-12T16:53:50.000Z
B,176,0,2020-06-12T16:53:25.000Z
B,122.8,0,2020-06-12T16:53:30.000Z
B,122.01,0,2020-06-12T16:55:35.000Z
我的输出生成了 name
和 DATA
的乘积,这不是我需要的。
.[][] | [.name] + (.DATA[] | [.V,.Q,.T]) | @csv
如果 DATA
的元素中的键总是以相同的顺序排列,您可以使用以下代替。
.[][] | [.name] + (.DATA[] | map(.)) | @csv
要获得有效的 CSV 输出,您需要使用 -r/--raw-output 选项调用 JQ。
我有以下 JSON 要转换为 CSV。它是一个数组的数组,其中包含一个对象和一个对象数组。
[
[
{
"name": "A",
"DATA": [
{
"V": 192.1,
"Q": 0,
"T": "2020-06-12T16:52:10.000Z"
},
{
"V": 175.2,
"Q": 0,
"T": "2020-06-12T16:53:50.000Z"
}
]
},
{
"name": "B",
"DATA": [
{
"V": 176,
"Q": 0,
"T": "2020-06-12T16:53:25.000Z"
},
{
"V": 122.8,
"Q": 0,
"T": "2020-06-12T16:53:30.000Z"
},
{
"V": 122.01,
"Q": 0,
"T": "2020-06-12T16:55:35.000Z"
}
]
}
]
]
想要的是:
A,192.1,0,2020-06-12T16:52:10.000Z
A,175.2,0,2020-06-12T16:53:50.000Z
B,176,0,2020-06-12T16:53:25.000Z
B,122.8,0,2020-06-12T16:53:30.000Z
B,122.01,0,2020-06-12T16:55:35.000Z
我的输出生成了 name
和 DATA
的乘积,这不是我需要的。
.[][] | [.name] + (.DATA[] | [.V,.Q,.T]) | @csv
如果 DATA
的元素中的键总是以相同的顺序排列,您可以使用以下代替。
.[][] | [.name] + (.DATA[] | map(.)) | @csv
要获得有效的 CSV 输出,您需要使用 -r/--raw-output 选项调用 JQ。