json - 在jq中使用CSV输出时如何将数组组合成单个字符串值?

标签 json csv jq

我有以下 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/

相关文章:

javascript - 从 csv 数据创建折线图

php - Codeigniter 将部分 CSV 数据插入 MYSQL 只有 id 和 date

arrays - 使用 jq 为 JSON 数组运行计数器

json - 在 bash 中使用 jq 将 json 值提取为数组

ruby-on-rails - 更新属性后不保存 ActiveRecord

python - 如何使用 python 从两个 csv 文件中获取值并将其放入单个 csv 文件中?

java - 防止 Jackson ObjectMapper 自动使用 toString() 格式化复合映射键

json - bash JSON with jq - 如何检查空的 JSON 成员?

java - Gson 抛出 MalformedJsonException 和其他异常

objective-c - 解析 JSON 时内存使用率较高