【发布时间】:2016-05-23 03:19:41
【问题描述】:
我有一个超过 2 个级别的 Python 字典,如下所示:
dict = {'keyA_1':'valueA_1', 'keyB_1': {'keyB_2':{'keyB_3':'valueB_3'}}}
我希望提取'keyA_1' 和'keyB_3' 的值。但是,在我的代码中,我不想使用一堆 try/except KeyError 进行错误检查,因为我有数千个键值对。相反,如果键不存在,则简单地返回 None。我发现的一种解决方案是使用 python get()。这很好用,但仅适用于第一级键值对。
例如,如果'keyA_1' 不存在
dict.get('keyA_1')
会返回None
但是如果'keyB_3'不存在
dict.get('keyB_1').get('keyB_2').get('keyB_3')
将返回 AttributeError: 'NoneType' object has no attribute 'get' 而不是 None
如果所有父键及其键都存在则返回值 'keyB_3' 简单地做同样的事情,否则返回 None。有什么建议吗?
【问题讨论】:
标签: python dictionary