我正在尝试提取在dict中具有某些键的所有对象,但是某些dicts不包含所有键,我想忽略keyError并继续。我已经看到了一些使用try和except执行此操作的实现,但它在我的情况下不起作用
allValues = []
for dictionary in masterDict:
values = [(dictionary[x]) for x in keysArray]
allValues.append(values)
答案 0 :(得分:9)
您应该在列表理解中使用 过滤器语句:
values = [dictionary[x] for x in keysArray if x in dictionary]
所以这里Python将首先检查x in dictionary
是否成立。如果不是,则忽略x
。否则dictionary[x]
会添加到词典中。
如果不想要忽略这些值,但将后备值添加到列表中,则可以使用:
values = [dictionary.get(x,fallback) for x in keysArray]
其中fallback
是"后备值"。