为什么不打印csv标题?

为什么不打印csv标题?,csv,centos,jq,Csv,Centos,Jq,森托斯,jq 我想将json导出到csv。 为此,我使用工具jq 这里是json的示例 { “第页”:{ “id”:“kctbh9vrtdwd”, “名称”:“GitHub”, “url”:”https://www.githubstatus.com", “时区”:“Etc/UTC”, 更新地址:“2021-05-27T16:56:02.461Z” }, “地位”:{ “指标”:“无”, “说明”:“所有系统运行” } } 我过得去 curl -s https://www.githubstat

森托斯,jq

我想将json导出到csv。 为此,我使用工具jq

这里是json的示例

{
“第页”:{
“id”:“kctbh9vrtdwd”,
“名称”:“GitHub”,
“url”:”https://www.githubstatus.com",
“时区”:“Etc/UTC”,
更新地址:“2021-05-27T16:56:02.461Z”
},
“地位”:{
“指标”:“无”,
“说明”:“所有系统运行”
}
}
我过得去

curl -s https://www.githubstatus.com/api/v2/status.json
这里将json转换为csv

curl -s https://www.githubstatus.com/api/v2/status.json | jq -r '.page | [.id, .name] | @csv'
结果如下:

"kctbh9vrtdwd","GitHub"

但是为什么不打印csv标题呢?

作为一条评论中的链接提供的SO页面上有很多噪音, 因此,这里有两个仅适用于jq的安全解决方案(“安全”的意思是,在输入JSON中键的顺序无关紧要):

  • 手动添加标题
  • 根据相关列的规范包括标题

  • 这回答了你的问题吗?我尝试了这个“curl-s | jq[“id”,“name”],'.page |[.id,.name]|@csv'”,但在第1行[id,jq:1编译错误您的尝试缺少括号。我尝试了这个:“curl-s githubstatus.com/api/v2/status.json | jq[“id”,“name”],(.page |[.id,.name])@csv”,但获取错误bash:syntax error靠近意外标记“(”您需要学习如何输入bash命令,或者将jq程序放入文件并使用-f命令行选项。
    ["id", "name"],
    (.page | [.id, .name])
    | @csv
    
    ["id", "name"] as $headers
    | $headers, (.page | [.[$headers[]]])
    | @csv