繁体   English   中英

JSON与jq解析并转换为csv

[英]json parsing with jq and convert to csv

我需要使用JQ从json文件中获取一些值。 我需要获取一个csv(时间,Data.key,纬度,经度,Qline)

输入:

{
   "Time":"14:16:23",
   "Data":{
      "101043":{
         "Lat":49,
         "Lng":15,
         "Qline":420
      },
      "101044":{
         "Lat":48,
         "Lng":15,
         "Qline":421
      }
   }
}

csv的示例输出:

"14:16:23", 101043, 49, 15, 420
"14:16:23", 101044, 48, 15, 421

非常感谢。 我只想:

cat test.json | jq '.Data[] |[ .Lat, .Lng, .Qline  ] | @csv' 

尝试这个:

{ Time } + (.Data | to_entries[] | { key: .key | tonumber } + .value)
    | [ .Time, .key, .Lat, .Lng, .Qline ]
    | @csv

确保使用-r开关获取原始输出。

这是另一个不包含+的解决方案。

{Time, Data: (.Data | to_entries)[]} 
| [.Time, (.Data.key | tonumber), .Data.value.Lat, .Data.value.Lng, .Data.value.Qline] 
| @csv

这是另一种解决方案。 如果data.json包含样本数据,则

jq -M -r '(.Data|keys[]) as $k | {Time,k:$k}+.Data[$k] | [.[]] | @csv' data.json

将产生

"14:16:23","101043",49,15,420
"14:16:23","101044",48,15,421

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM