[英]How to export data to csv file using JQ
JSON 文件示例。
{
"entities": [
{
"id": "d130",
"name": "Abdoulaye, Aminata",
"division": {
"id": "d130",
"name": "",
"selfUri": "/api/v2/authorization/"
},
"chat": {
"jabberId": "62a0e0b060"
},
"email": "Aminata.Abdoulaye@",
"primaryContactInfo": [
{
"address": "Aminata.Abdoulaye@",
"mediaType": "EMAIL",
"type": "PRIMARY"
}
],
"addresses": [
{
"address": "Aminata.Abdoulaye@",
"mediaType": "EMAIL",
"type": "WORK"
}
],
將 JSON 轉換為 csv 時,我設法創建了一個包含數據的 csv 文件,但 Z628CB5675FF56775FE3FZ 文件中沒有顯示標題。
gc --profile NewProfile users list -a --pageSize 100 | jq-win64 -r -c ".[1,2,3] | [.username,.addresses[].address,.id,.title]| @csv" > test.csv
我設法創建了一個包含標題但沒有數據的 csv 文件。
gc --profile NewProfile users list -a --pageSize 100 | jq-win64 -r ".? |(map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows[] | @csv" > test.csv
然后,當我嘗試將兩者合並在一起時,我收到一條錯誤消息,說 string ("Waled.Abdu...) has no keys
gc --profile NewProfile users list -a --pageSize 100 | jq-win64 -r ".[1,2,3] | [.username,.addresses[].address,.id,.title] |(map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows[] | @csv" > test.csv
jq: error (at <stdin>:39688): string ("Waled.Abdu...) has no keys
Waled 在 JSON 中的詳細信息如下所示。
{
"id": "b143",
"name": "Abdulkadir, Waled",
"division": {
"id": "b143",
"name": "",
"selfUri": "/api/v2/authorization/"
},
"chat": {
"jabberId": "63e6e"
},
"department": "Canada Solutions",
"email": "Waled.Abdulkadir@",
"primaryContactInfo": [
{
"address": "Waled.Abdulkadir@",
"mediaType": "EMAIL",
"type": "PRIMARY"
}
],
"addresses": [],
"state": "active",
"title": "Engineer",
"username": "Waled.Abdulkadir@",
"manager": {
"id": "f3cc8f83-14c0",
"selfUri": "/api/v2/users/14c0"
},
"version": 4,
"acdAutoAnswer": false,
"selfUri": "/api/v2/users/14c0"
},
任何建議將不勝感激。 謝謝
我會 go 有類似的東西:
jq -r '["username", "address", "id", "title"],
(.entities[]
| (try .addresses[].address // null) as $a
| [.username, $a, .id, .title] )
| @csv'
要規避 shell 引用問題,請考慮使用 -f 命令行選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.