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

时间:2016-01-04 13:41:58

标签: python list dictionary nested

我正在尝试使用Python加载JSON文件,并使用以下代码仅提取必要的数据。有没有办法以更好/更简单的方式实现这一目标?我觉得可以使用defaultdict中的collections并且没有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}

1 个答案:

答案 0 :(得分:1)

您可以在main_dict上使用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)