Check if key exists in dictionary. If not, append it
我有一个从 json 数据创建的大型 python 字典,并且正在从大字典创建一个较小的字典。大字典的某些元素有一个名为"details"的键,而有些元素没有。我想要做的是检查大字典中的每个条目中是否存在该键,如果不存在,则将键 \\'details\\' 与值 \\'No details available\\' 附加到新字典中。我在下面放了一些示例代码作为演示。 LargeDict 更大,我的代码中有很多键,但为了清楚起见,我保持简单。
1 2 3 4 5 | LargeDict = {'results': [{'name':'john','age':'23','datestart':'12/07/08','department':'Finance','details':'Good Employee'}, {'name':'barry','age':'26','datestart':'25/08/10','department':'HR','details':'Also does payroll'}, {'name':'sarah','age':'32','datestart':'13/05/05','department':'Sales','details':'Due for promotion'}, {'name':'lisa','age':'21','datestart':'02/05/12','department':'Finance'}]} |
这就是我获取 SmallDict 数据的方式:
1 | SmallDict = {d['name']:{'department':d['department'],'details':d['details']} for d in LargeDict['results']} |
但是,当一个大型 dict 条目没有详细信息时,我得到一个关键错误。我说我需要使用
你不需要
1 2 3 4 | d = {} bar = d.setdefault('foo','bar') #returns 'bar' print bar # bar print d #{'foo': 'bar'} |
正如其他人所指出的,如果您不想将键添加到字典中,可以使用
这是一个我经常看到的旧参考。
如果你想在
当
1 | SmallDict = {d['name']:{'department':d['department'],'details':d.get('details','No details available')} for d in LargeDict['results']} |