如何在嵌套字典中使用 .get()?
how to use .get() in a nested dict?
我使用 .get()
查询字典中可能存在或不存在的键。
In [1]: a = {'hello': True}
In [3]: print(a.get('world'))
None
但是,我有一些字典,其中我要检查的键在结构中更深,我不知道祖先是否存在。如果字典是 b = {'x': {'y': {'z': True}}}
我必须求助于
In [5]: b.get('x') and b['x'].get('y') and b['x']['y'].get('z')
Out[5]: True
当我不知道'x'
和'y'
是否存在时检查'z'
?
您可以 return 来自 dict.get()
的空字典对象以简化链接调用:
b.get('x', {}).get('y', {}).get('z')
但也许您最好捕获 KeyError
异常:
try:
value = b['x']['y']['z']
except KeyError:
value = None
我使用 .get()
查询字典中可能存在或不存在的键。
In [1]: a = {'hello': True}
In [3]: print(a.get('world'))
None
但是,我有一些字典,其中我要检查的键在结构中更深,我不知道祖先是否存在。如果字典是 b = {'x': {'y': {'z': True}}}
我必须求助于
In [5]: b.get('x') and b['x'].get('y') and b['x']['y'].get('z')
Out[5]: True
当我不知道'x'
和'y'
是否存在时检查'z'
?
您可以 return 来自 dict.get()
的空字典对象以简化链接调用:
b.get('x', {}).get('y', {}).get('z')
但也许您最好捕获 KeyError
异常:
try:
value = b['x']['y']['z']
except KeyError:
value = None