簡體   English   中英

如何使用jq提取json數據和output到csv

[英]How to extract json data and output to csv using jq

我的 json 數組文件是一個長文件並且有許多對象 [{}、{}、{}、{}],在每個 object 中我需要三個鍵的值:“STK_NUM”:“1004251”,“DLR_COST”:40.32 ,“RTL_AMT”:9.99。 我將如何編寫 jq 程序以獲取鍵名稱作為我的 csv 文件中的標題:STK_NUM、DLR_COST、RTL_AMT 以及來自所有對象的這些鍵的值:1004251、40.32、9.99? 這三個密鑰在每個 object 中。

所需 csv:

STK_NUM,DLR_COST,RTL_AMT
1004251,40.32,9.99
1012658,29.99,4.69
1232556,18.89,2.49

我試過了:

jq -r .[].STK_NUM HSEitm.json

結果:

"1004251"
"1012658"
"1232556"

我所有其他的 jq 腳本嘗試都會導致錯誤,因為我不知道自己在做什么。

如果有人能告訴我,我將不勝感激。

本着 DRY 的精神:

jq -r '
  ["STK_NUM", "DLR_COST", "RTL_AMT"] as $headers
  | $headers, 
    # Rows:
    map(.[$headers[]]) 
  | @csv
'

嘗試

jq -r '
  
  # Headers
  ["STK_NUM", "DLR_COST", "RTL_AMT"],
  
  # Rows
  (.[] | [.STK_NUM, .DLR_COST, .RTL_AMT])
  
  # Output Format
  | @csv
  
' HSEitm.json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM