【发布时间】:2022-01-01 05:04:12
【问题描述】:
我正在尝试通过 jq 将 json 对象转换为 csv。这是json结构:
{
"totalCount": 4440,
"data": [
{
"company": {
"name": "My_company_name",
"countryCode": "US",
"portfolioName": "My_portfolio"
},
"eventDate": "2021-11-22T00:00:00",
"newValue": null,
"oldValue": null,
"ruleCode": 704,
"ruleName": "New Accounts",
"summary": "Explanations..."
},
{
"company": {
"name": "My_company_name 2",
"countryCode": "UK",
"portfolioName": "My_portfolio"
},
"eventDate": "2021-10-22T00:00:00",
"newValue": null,
"oldValue": null,
"ruleCode": 701,
"ruleName": "Hello",
"summary": "otherExplanations..."
}
...
]
}
对于“第一级”的数据,我没有问题:
jq -r '.data | map({eventDate, ruleCode, ruleName, summary, oldValue, newValue}) | (first | keys_unsorted) as $keys | map([to_entries[] | .value]) as $rows | $keys,$rows[] | @csv' input.json > output.csv
但我想添加例如公司名称和国家代码,但我不知道这样做,因为这个数据之王在第二个“级别”。
我想得到类似的东西:
"eventDate","ruleCode","ruleName","summary","oldValue","newValue","companyName", "companyCountryCode"
"2021-11-22T00:00:00",704,"New Accounts","Explanations...",,,"My_company_name", "US"
"2021-11-22T00:00:00",701,"Hello","otherExplanations...",,,"My_company_name 2", "UK"
你能帮我吗?
谢谢
【问题讨论】:
-
请添加您认为可以翻译成的 csv 格式。
-
完成。对于 csv 标头,如果更容易,它可以是“name”和“countryCode”(而不是“companyName”、“companyCountryCode”)。谢谢:)
标签: json csv jq export-to-csv