我正在尝试转换如下所示的对象:
{
"123" : "abc",
"231" : "dbh",
"452" : "xyz"
}
到csv看起来像这样:
"123","abc"
"231","dbh"
"452","xyz"
我宁愿使用命令行工具jq,但似乎无法弄清楚如何进行分配。我设法拿到了钥匙,jq '. | keys' test.json
但不知道下一步该怎么做。
问题是您不能使用像这样直接将ak:v对象转换为csv @csv
。它必须是一个数组,所以我们需要先转换为数组。如果键被命名,这很简单,但是它们是动态的,因此并不是那么容易。
试试这个过滤器:
to_entries[] | [.key, .value]
to_entries
将对象转换为键/值对象的数组。[]
将数组分解为数组中的每个项目这将产生以下输出:
[
"123",
"abc"
],
[
"231",
"dbh"
],
[
"452",
"xyz"
]
然后,您可以使用@csv
过滤器将行转换为CSV行。
$ echo '{"123":"abc","231":"dbh","452":"xyz"}' | jq -r 'to_entries[] | [.key, .value] | @csv'
"123","abc"
"231","dbh"
"452","xyz"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句