使用jq将JSON格式转换为CSV Bash
以下是我的示例代码:使用jq将JSON格式转换为CSV Bash,json,bash,jq,Json,Bash,Jq,以下是我的示例代码: [ { "urlString" : "https://www.test.com/products/gift-card", "imageUrl" : "https://cdn.shopify.com/s/files/1/0454/6253/products/dope_mone_850x.jpg?v=1539288792" }, { "urlString" : "https://www.test.com/p
[
{
"urlString" : "https://www.test.com/products/gift-card",
"imageUrl" : "https://cdn.shopify.com/s/files/1/0454/6253/products/dope_mone_850x.jpg?v=1539288792"
},
{
"urlString" : "https://www.test.com/products/gift-card",
"imageUrl" : "https://cdn.shopify.com/s/files/1/0454/6253/products/dope_mone_850x.jpg?v=1539288792"
},
]
我想创建一个CSV文件,其输出为:
https://www.test.com/products/gift-card,https://cdn.shopify.com/s/files/1/0454/6253/products/dope_mone_850x.jpg?v=1539288792
https://www.test.com/products/gift-card,https://cdn.shopify.com/s/files/1/0454/6253/products/dope_mone_850x.jpg?v=1539288792
标题标记不是必需的,但如果它们在解决方案中,就可以了
谢谢你的帮助
jq -r '.[] | [.urlString, .imageUrl] | @csv'
理想情况下,在jqplay的上可以看到这一点,可以显示您尝试了什么,以及输出与预期的差异。此外,请确保即使在精简JSON时也不会使其无效。在本例中,它不会因为额外的逗号而进行解析。顺便说一句,您显示的是字符串周围没有引号的输出。这是故意的吗?(真正的CSV应该接受这些引号,在某些情况下——比如当您的键或值包含文字逗号时——甚至需要它们;但是如果您是为了使用不同的工具而构建的,也许我们需要做一些更改)。