繁体   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