追加到 Python 中嵌套字典内的列表
Append to a list inside of a nested dictionary in Python
我正在尝试使用 Python 加载一个 JSON 文件,并使用以下代码仅提取必要的数据。有没有办法以 better/simpler 的方式完成这个?我觉得这可以在 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}
您可以在 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)
我正在尝试使用 Python 加载一个 JSON 文件,并使用以下代码仅提取必要的数据。有没有办法以 better/simpler 的方式完成这个?我觉得这可以在 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}
您可以在 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)