[英]Using jq to convert json to csv
我正在嘗試提出正確的 jq 語法來將 json 轉換為 csv。
預期結果:
<email>,<id>,<name>
e.g.
user1@whatever.nevermind.no,0,general
user2@whatever.nevermind.no,0,general
user1@whatever.nevermind.no,1,local
...
輸入
[
{
"id": 0,
"name": "General",
"agent_priorities": {
"user1@whatever.nevermind.no": "normal",
"user2@whatever.nevermind.no": "normal"
}
},
{
"id": 1,
"name": "local",
"agent_priorities": {
"user1@whatever.nevermind.no": "normal"
}
},
{
"id": 2,
"name": "Engineering",
}
]
將 id 和 name 存儲在變量中,然后遍歷agent_priorities
的鍵:
jq -r '.[]
| .id as $id
| .name as $name
| .agent_priorities
| keys
| .[]
| [., $id, $name ]
| @csv
' file.json
接受的答案的以下變體根據要求檢查“agent_priorities”鍵的存在,並使用keys_unsorted
保留鍵的順序:
jq -r '
.[]
| select(has("agent_priorities"))
| .id as $id
| .name as $name
| .agent_priorities
| keys_unsorted[]
| [., $id, $name ]
| @csv
' file.json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.