我是 jq 的新手,我有一个来自 DynamoDB 表的 JSON 文件,我想将其转换为 CSV。这是我的 JSON 文件。
[
{
"SnsPublishTime": {
"S": "2019-07-27T15:07:38.904Z"
},
"SESreportingMTA": {
"S": "dsn; a8-19.smtp-out.amazonses.com"
},
"SESMessageType": {
"S": "Bounce"
},
"SESDestinationAddress": {
"S": "bounce@simulator.amazonses.com"
},
"SESMessageId": {
"S": "0100016c33f91857-600a8e44-c419-4a02-bfd6-7f6908f5969e-000000"
},
"SESbounceSummary": {
"S": "[{\"emailAddress\":\"bounce@simulator.amazonses.com\",\"action\":\"failed\",\"status\":\"5.1.1\",\"diagnosticCode\":\"smtp; 550 5.1.1 user unknown\"}]"
}
}
]
如果我运行这个程序,就可以获得正确的输出。
jq -r '.[] ' test.json
但如果我奔跑
jq -r '.[] |@csv' test.json
然后我遇到了一个错误:
jq:错误(位于test.json:22):对象({"SnsPublis ...)无法以CSV格式进行格式化,只能是数组
我该如何正确地将这个JSON转换为CSV?我试着谷歌了一个多小时,但似乎无法解决。
谢谢!
code
jq -r '.[] | [ .SnsPublishTime.S, .SESreportingMTA.S, .SESMessageType.S, .SESDestinationAddress.S]| @csv' test.json现在,由于某种原因,结果仍然包含引号,但我可以接受。 - Kliment