在Python中附加到嵌套字典内的列表

在Python中附加到嵌套字典内的列表,python,list,dictionary,nested,Python,List,Dictionary,Nested,我试图用Python加载一个JSON文件,并用以下代码仅提取必要的数据。有没有更好/更简单的方法来实现这一点?我觉得这可以在collections中使用defaultdict完成,而不使用if语句,但无法理解 import json with open('somedata.json') as f: json_data = json.load(f) main_dict = {} for item in json_data: values1_list = item['sub_v

我试图用Python加载一个JSON文件,并用以下代码仅提取必要的数据。有没有更好/更简单的方法来实现这一点?我觉得这可以在
collections
中使用
defaultdict
完成,而不使用
if
语句,但无法理解

import json

with open('somedata.json') as f:
    json_data = json.load(f)

main_dict = {}

for item in json_data:
    values1_list = item['sub_values1']
    values2_str = item['sub_values2']

    if item['main_key'] in main_dict:
        main_dict[item['main_key']]['sub_key1'].append(values1_list)
    else:
        main_dict['main_key'] = {'sub_key1': values1_list, 'sub_key2': values2_str}

您可以在主目录上使用
setdefault
方法:

main_dict = {}
for item in json_data:
    values1_list = item['sub_values1']
    values2_str = item['sub_values2']
    vals = main_dict.setdefault('main_key', {'sub_key1': values1_list, 'sub_key2': values2_str})
    vals['sub_key1'].append(values1_list)