使用jq将json数组转换为csv

时间:2015-01-11 16:05:59

标签: json csv jq

使用jq将json数组转换为csv会产生以下结果:

$ echo '["a",1,true,"comment"]' | jq '.|@csv'
"\"a\",1,true,\"comment\""

我很惊讶整个数组变成了一个字符串而不是一个值列表。我该怎么做才能获得

"a",1,true,"comment"

代替?

1 个答案:

答案 0 :(得分:3)

您误解了@过滤器的要点。这些是字符串格式过滤器,它们产生字符串。因此@csv将数组的字符串表示形式返回为csv行。这恰恰是它应该具备的。它返回" unstringified"是错误的。版本,因为无法进一步处理。

如果你想要原始的" unstringified"输出,使用-r原始输出选项。

$ echo '["a",1,true,"comment"]' | jq -r '@csv'
"a",1,true,"comment"