【发布时间】:2019-02-02 17:36:48
【问题描述】:
这个话题之前已经提出过,但是回复并不能完全解决我的问题,下面会详细说明。
我有以下来自 API 调用的 JSON 文件....
{
"status": "ok",
"meta": {
"count": 3
},
"data": {
"1030907370": {
"client_language": "en",
"last_battle_time": 1548555418,
"account_id": 1030907370,
"created_at": 1525288212,
"updated_at": 1548557165,
"private": null,
"global_rating": 3906,
"clan_id": null,
"nickname": "Knightly_Gunner",
"logout_at": 1548557161
},
"1020786770": {
"client_language": "ja",
"last_battle_time": 1548948444,
"account_id": 1020786770,
"created_at": 1465998341,
"updated_at": 1548948547,
"private": null,
"global_rating": 4396,
"clan_id": null,
"nickname": "black_black_boss",
"logout_at": 1548948544
},
"1018984431": {
"client_language": "en",
"last_battle_time": 1548550089,
"account_id": 1018984431,
"created_at": 1456254986,
"updated_at": 1548550089,
"private": null,
"global_rating": 1666,
"clan_id": null,
"nickname": "doctordon",
"logout_at": 1548550016
}
}
}
使用下面的 jq 查询....
jq '.data | to_entry[] | [.key, .value.client_language, .value.global_rating]'
我得到以下输出,这正是我需要的数据,整齐地打包在数组中......
[
"1030907370",
"en",
3906
]
[
"1020786770",
"ja",
4396
]
[
"1018984431",
"en",
1666
]
我需要将此数据上传到 MS Access 数据库,因此需要将其转换为 .csv 文件,因此我的查询现在看起来像这样......
jq '.data | to_entry[] | [.key, .value.client_language, .value.global_rating] | @csv'
结果输出是....
"\"1030907370\",\"en\",3906"
"\"1020786770\",\"ja\",4396"
"\"1018984431\",\"en\",1666"
但这不是真正的 .csv 文件,不适用于 MS Access 或 Excel。我需要的是看起来像这样的输出......
"1030907370","en",3906
"1020786770","ja",4396
"1018984431","en",1666
但这就是我的问题所在!在从 jq 查询中实现所需输出方面,我将不胜感激。 谢了!
【问题讨论】: