我目前正在尝试按下不需要的JSON输出,我将返回到对我来说更有价值的格式.答案应该使用jq或Python代码(我在python中使用pyjq库)
这是当前的JSON输出:
[
{"colour":"Red", "car": [ {"year":2000, "make":"Honda", "model":"Accord"} ] },
{"colour":"Blue", "car": [ {"year":2015, "make":"Toyota", "model":"Camry"} ] },
{"colour":"Red", "car": [ {"year":1999, "make":"Dodge", "model":"Ram"} ] }
]
Run Code Online (Sandbox Code Playgroud)
使用jq或者可能使用Python循环,我想将其格式化为一个新的JSON对象,如下所示:
[
{ "Red":[2000,1999] },
{ "Blue": 2015 }
]
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何格式化任何看起来像上面第一个片段的JSON,并将其转换为第二个片段中列出的所需结果.
如果你遍历数据,你可以改革一个新的字典,如:
output = {}
for datum in data:
for car in datum['car']:
output.setdefault(datum['colour'], []).append(car['year'])
Run Code Online (Sandbox Code Playgroud)
data = [
{"colour": "Red",
"car": [{"year": 2000, "make": "Honda", "model": "Accord"}]},
{"colour": "Blue",
"car": [{"year": 2015, "make": "Toyota", "model": "Camry"}]},
{"colour": "Red",
"car": [{"year": 1999, "make": "Dodge", "model": "Ram"}]}
]
output = {}
for datum in data:
for car in datum['car']:
output.setdefault(datum['colour'], []).append(car['year'])
print(output)
Run Code Online (Sandbox Code Playgroud)
{'Red': [2000, 1999], 'Blue': [2015]}
Run Code Online (Sandbox Code Playgroud)