Python中如何将字典列表转换为字典
Python列表转字典实现方案
你给出的是元素为字典的列表,最常用的转换方式是取列表中每个字典的唯一字段作为新字典的键,对应完整字典项作为值,具体实现如下:
前置说明
如果你的原始数据是JSON格式字符串,需要先通过json库转换成Python列表:
import json raw_json = '''[{"id":0,"test":null,"number":0,"range":111028}, {"id":2,"test":null,"number":0,"range":110931}, {"id":3,"test":null,"number":0,"range":64222}]''' source_list = json.loads(raw_json)
转换后JSON里的null会自动变成Python对应的None类型。
方法1:字典推导式(最简洁,Python2.7及以上版本都支持)
以id字段作为键举例:
result_dict = {item["id"]: item for item in source_list}
转换后得到的结果为:
{ 0: {"id":0,"test":None,"number":0,"range":111028}, 2: {"id":2,"test":None,"number":0,"range":110931}, 3: {"id":3,"test":None,"number":0,"range":64222} }
方法2:循环遍历赋值(兼容性更强,方便扩展逻辑)
如果需要加去重、过滤等额外逻辑,可以用普通循环实现:
result_dict = {} for item in source_list: # 可自行添加判断逻辑,比如跳过没有id字段的项 if "id" in item: result_dict[item["id"]] = item
注意:如果选作键的字段存在重复值,后面的项会自动覆盖前面的项,选键前请确认该字段在所有子字典中是唯一的。如果需要用其他字段作为键,只要把代码里的
item["id"]换成对应的键名即可。
内容的提问来源于stack exchange,提问作者mojgh
相关产品推荐
相关产品推荐

