我使用.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'
?
答案 0 :(得分:8)
您可以从dict.get()
返回空字典对象以简化链接调用:
b.get('x', {}).get('y', {}).get('z')
但也许你最好不要抓住KeyError
例外:
try:
value = b['x']['y']['z']
except KeyError:
value = None