假设一个长度不等的字典列表,使它们等长的最佳方法是什么,即缺少键值,添加键但值设置为空字符串或null:
lst = [
{'id': '123', 'name': 'john'},
{'id': '121', 'name': 'jane'},
{'id': '121'},
{'name': 'mary'}
]
成为:
lst = [
{'id': '123', 'name': 'john'},
{'id': '121', 'name': 'jane'},
{'id': '121', 'name': ''},
{'id': '', 'name': 'mary'}
]
我能想到的唯一方法是转换为pandas数据帧然后再转换为dict:
pd.DataFrame(lst).to_dict(orient='records')
最佳答案 查找所有密钥需要完整的初始数据传递:
>>> set().union(*lst)
{'id', 'name'}
现在迭代dicts并为每个键设置默认值:
keys = set().union(*lst)
for d in lst:
for k in keys:
d.setdefault(k, '')