【发布时间】:2020-06-28 03:17:44
【问题描述】:
我之前在这里得到了一些关于 jq 到 csv 问题的帮助。我遇到了一个问题,一些 json 文件有一些额外的值会破坏 jq 命令
这里是json数据。修复部分是破坏 jq 命令的原因
[
{
"Name": "John Doe",
"Car": [
"Car1",
"Car2"
],
"Location": "Texas",
"Repairs: {
"RepairLocations": {
"RepairsCompleted":[
"Fix1",
"Fix2"
]
}
}
},
{
"Name": "Jane Roe",
"Car": "Car1",
"Location": [
"Illinois",
"Kansas"
]
}
]
这里是命令
def expand($keys):
. as $in
| reduce $keys[] as $k ( [{}];
map(. + {
($k): ($in[$k] | if type == "array" then .[] else . end)
})
) | .[];
(.[0] | keys_unsorted) as $h
| $h, (.[] | expand($h) | [.[$h[]]]) | @csv
这是我想要得到的最终结果。此数据不是实际数据。
Name,Car,Location,Repairs:RepairLocation
John Doe,Car1,Texas,RepairsCompleted:Fix1
John Doe,Car1,Texas,RepairsCompleted:Fix2
John Doe,Car2,Texas,RepairsCompleted:Fix1
John Doe,Car2,Texas,RepairsCompleted:Fix2
Jane Roe,Car1,Illinois,
Jane Roe,Car1,Kansas,
对此的任何建议都会很棒。我正在努力弄清楚jq
【问题讨论】:
标签: json export-to-csv jq