【发布时间】:2019-06-25 13:35:20
【问题描述】:
我想从 JSON 文件中提取数据并使用 jq 将其写入 CSV 文件。
这是我的数据样本:
[
{
"media": {
"track": [
{
"attype": "General",
"FileExtension": "MP4",
"Format": "MPEG-4"
},
{
"attype": "Video",
"Format": "MPEG Video"
}
]
}
},
{
"media": {
"track": [
{
"attype": "General",
"FileExtension": "ts",
"Format": "MPEG-TS"
},
{
"attype": "Video",
"Format": "MPEG Video"
}
]
}
}
]
这是所需的输出:
"MP4","MPEG-4","MPEG Video"
"ts","MPEG-TS","MPEG Video"
这是我的jq 代码:
.[].media.track[] |
[
(select(.attype =="General") | .FileExtension, .Format),
(select(.attype =="Video") | .Format)
] | @csv
这是实际输出:
"MP4","MPEG-4"
"MPEG Video"
"ts","MPEG-TS"
"MPEG Video"
我已经尝试过flatten 过滤器和方括号[] 的不同用法来构建数组,但无济于事。如何使用jq 达到所需的输出?
【问题讨论】: