好的,所以这是一个相当简单的JSON源文件,需要对其进行解析...
{
"status": "ok",
"meta": {
"count": 10
},
"data": {
"1040918564": [
{
"statistics": {
"wins": 166,
"battles": 441
},
"mark_of_mastery": 1,
"tank_id": 9505
},
{
"statistics": {
"wins": 154,
"battles": 325
},
"mark_of_mastery": 1,
"tank_id": 47105
}
],
"1040836357": [
{
"statistics": {
"wins": 216,
"battles": 490
},
"mark_of_mastery": 1,
"tank_id": 47105
},
{
"statistics": {
"wins": 114,
"battles": 254
},
"mark_of_mastery": 2,
"tank_id": 7969
}
]
}
}
我想最终得到以下输出,然后可以将其输出到@csv并输出到我的.csv文件...。
[
1040918564,
166,
441,
1,
9505
]
[
1040918564,
154,
325,
1,
47105
]
[
1040836357,
216,
490,
1,
47105
]
[
1040836357,
114,
254,
2,
7969
]
我的第一步是.data | to_entries[]
,其解析如下....
{
"key": "1040918564",
"value": [
{
"statistics": {
"wins": 166,
"battles": 441
},
"mark_of_mastery": 1,
"tank_id": 9505
},
{
"statistics": {
"wins": 154,
"battles": 325
},
"mark_of_mastery": 1,
"tank_id": 47105
}
]
*** snip ***
这就是我被困住的地方。如何将“键”值包含到“值”数组的每个元素中,以实现所需的输出。
如果我忽略“键”并在“值”数组上使用“ to_entries”,它几乎可以完成工作,但效果不尽人意。
.data | to_entries[] | {id: .key, value} | .value | to_entries [] | .value | [.statistics.wins, .statistics.battles, .mark_of_mastery, .tank_id]
给出....
[
166,
441,
1,
9505
]
[
154,
325,
1,
47105
]
[
216,
490,
1,
47105
]
[
114,
254,
2,
7969
]
这与我所能获得的差不多。
为此我年龄太大了,非常感谢您的帮助。 :)
答案 0 :(得分:0)
这是一种非常保守的方法:
.data
| to_entries[]
| [.key]
+ (.value[]
| (.statistics | [.wins, .battles])
+ [.mark_of_mastery, .tank_id])