如何在嵌套的dict中使用.get()?

时间:2015-01-28 08:29:28

标签: python dictionary

我使用.get()来查询字典中可能存在或不存在的键。

In [1]: a = {'hello': True}
In [3]: print(a.get('world'))
None

然而,我有字典,我要检查的密钥在结构中更深,我不知道祖先是否存在。如果dict是b = {'x': {'y': {'z': True}}},我必须求助于

In [5]: b.get('x') and b['x'].get('y') and b['x']['y'].get('z')
Out[5]: True

在我不知道'z''x'是否存在时检查'y'

1 个答案:

答案 0 :(得分:8)

您可以从dict.get()返回空字典对象以简化链接调用:

b.get('x', {}).get('y', {}).get('z')

但也许你最好不要抓住KeyError例外:

try:
    value = b['x']['y']['z']
except KeyError:
    value = None