我正在尝试将JSON文件从下面的命令转换为CSV格式:
curl -X GET 'https://api.coinex.com/v1/market/kline?market=BCHBTC&type=1min' -H "Accept: application/json"
我尝试了如下jq命令,但没有成功:
jq '.data |to_entries[] | @csv'
或
jq '.data |to_entries[] | [.key, (.0|tonumber),(.1|tonumber),(.2|tonumber),(.3|tonumber),(.4|tonumber),(.5|tonumber),(.6|tonumber),(.7|tonumber) )] | @csv'
所需输出如下:
1619094720 0.01738857 0.01742868 0.01742868 0.01737360 1.24151689 0.0215974650849251 BCHBTC
1619094780 0.01742823 0.01742913 0.01742913 0.01742807 0.89060000 0.0155215977170000 BCHBTC
1619094840 0.01744941 0.01745423 0.01745423 0.01744941 0.42820000 0.0074724290140000 BCHBTC
1619094900 0.01745458 0.01740857 0.01745458 0.01740857 0.73530000 0.0128245470890000 BCHBTC
jq -r '.data[] | @tsv
'解决了问题,谢谢@Inian
不需要to_entries
,只需将过滤器直接应用于数组,例如:
jq -r '.data[] | .[0:-1] | map(tonumber) | @tsv'
注意,上面删除了"BCHBTC"
文本字段,如注释中peak所示,这可以包含在特殊或运算符(//
(中:
jq -r '.data[] | tonumber? // . | @tsv'