【问题标题】:Append to a list inside of a nested dictionary in Python附加到 Python 中嵌套字典内的列表
【发布时间】:2016-01-04 13:41:58
【问题描述】:

我正在尝试使用 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}

【问题讨论】:

    标签: python list dictionary nested


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多