从python dict更改嵌套json结构
我有一个巨大的JSON文件:从python dict更改嵌套json结构,python,json,dictionary,Python,Json,Dictionary,我有一个巨大的JSON文件:substitutions.JSON,看起来像这样: [ { "city":"05045", "tribunals":[ {"name":"tribunal 1","value":"path_1"} ] }, {
substitutions.JSON
,看起来像这样:
[
{
"city":"05045",
"tribunals":[
{"name":"tribunal 1","value":"path_1"}
]
},
{
"city":"81001",
"tribunals":[
{"name":"tribunal 1","value":"path_1"},
{"name":"tribunal 2","value":"path_2"},
{"name":"tribunal 3","value":"path_3"},
{"name":"tribunal 4","value":"path_4"},
{"name":"tribunal 5","value":"path_5"},
{"name":"tribunal 6","value":"path_6"}
]
}
]
我想把它转换成这样:
{
"05045":
{
"tribunal 1": "path_1"
},
"81001":
{
"tribunal 1": "path_1",
"tribunal 2": "path_2",
"tribunal 3": "path_3",
"tribunal 4": "path_4",
"tribunal 5": "path_5",
"tribunal 6": "path_6"
}
}
我尝试了JSON上的不同类型的迭代以获得预期的输出,但没有一种有效。就目前而言,我正在这样做:
import json
tribunals = open('tribunals.json',encoding='utf-8')
tribunals = json.load(tribunals)
for tribunal in tribunals:
print(tribunal['city'])
for tribunals_list in tribunal['tribunals']:
print(tribunals_list)
这给了我下一个输出
05045
{"name":"tribunal 1", "value":"path_1"}
81001
{"name":"tribunal 1","value": "path_1"}
{"name":"tribunal 2","value": "path_2"}
{"name":"tribunal 3","value": "path_3"}
{"name":"tribunal 4","value": "path_4"}
{"name":"tribunal 5","value": "path_5"}
{"name":"tribunal 6","value": "path_6"}
基于此,我将使用文本编辑器完成这项工作,但显然,最好的选择是完全用脚本完成这项工作。有什么建议吗
谢谢为什么要打印而不是把它变成你要的字典?@Sayse,这是我尝试过的,但我不知道怎么做,这就是我把它贴在这里的原因。也许它需要在代码中稍作修改,但我已经试了几个小时没有实现它!为什么要打印而不是把它变成你要的字典?@Sayse,这是我尝试过的,但我不知道怎么做,这就是为什么要把它贴在这里。也许它需要在代码中稍作修改,但我已经试了几个小时没有实现它!谢谢那正是我想要的!谢谢那正是我想要的!
import json
tribunals = open('tribunals.json',encoding='utf-8')
tribunals = json.load(tribunals)
result = {}
for tribunal in tribunals:
result[tribunal['city']] = {}
for item in tribunal['tribunals']:
result[tribunal['city']][item['name']] = item['value']
print(result)