我有以下 jq
命令:
cat myFile.json | jq -r '.tickets[] | [.created_at, .id, .via.channel, .tags[]] | @csv'
它输出一行,例如:
"2016-02-02T10:00:00Z",99999,"web","tag1","tag2","tag3","tag4"
我正在尝试
join
.tags[]
数组,这样我就可以得到:"2016-02-19T13:25:55Z",99999,"web","tag1,tag2,tag3,tag4"
我尝试了一些事情,例如
cat myFile.json | jq -r '.tickets[] | [.created_at, .id, .via.channel, (.tags[] | join(","))] | @csv'
但它给出了错误,例如
jq: error (at <stdin>:0): Cannot iterate over string ("tag1...)
那么,如何加入
.tags[]
在上面的命令中,而不是单独的字段,我得到一个字符串值(其中包含逗号分隔的标记值)?
最佳答案
您需要调用join()
在 tags
列表,而不是单个标签。尝试:
jq -r '.tickets[] | [.created_at, .id, .via.channel, (.tags | join(","))] | @csv'
关于json - 在jq中使用CSV输出时如何将数组组合成单个字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45165303/