簡體   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