使用 jq 将 json 数组转换为 csv
Conversion of json array to csv using jq
使用 jq
将 json 数组转换为 csv 结果如下:
$ echo '["a",1,true,"comment"]' | jq '.|@csv'
"\"a\",1,true,\"comment\""
令我惊讶的是整个数组变成了一个字符串而不是值列表。我该怎么做才能得到
"a",1,true,"comment"
代替?
您误解了 @
过滤器的意义。这些是字符串格式化过滤器,它们产生字符串。所以 @csv
returns 数组的字符串表示形式为 csv 行。这正是它应该做的。 return "unstringified" 版本是错误的,因为它无法进一步处理。
如果您想要原始 "unstringified" 输出,请使用 -r
原始输出选项。
$ echo '["a",1,true,"comment"]' | jq -r '@csv'
"a",1,true,"comment"
使用 jq
将 json 数组转换为 csv 结果如下:
$ echo '["a",1,true,"comment"]' | jq '.|@csv'
"\"a\",1,true,\"comment\""
令我惊讶的是整个数组变成了一个字符串而不是值列表。我该怎么做才能得到
"a",1,true,"comment"
代替?
您误解了 @
过滤器的意义。这些是字符串格式化过滤器,它们产生字符串。所以 @csv
returns 数组的字符串表示形式为 csv 行。这正是它应该做的。 return "unstringified" 版本是错误的,因为它无法进一步处理。
如果您想要原始 "unstringified" 输出,请使用 -r
原始输出选项。
$ echo '["a",1,true,"comment"]' | jq -r '@csv'
"a",1,true,"comment"