我有一个python字典,有超过2个级别,如下所示:
dict = {'keyA_1':'valueA_1', 'keyB_1': {'keyB_2':{'keyB_3':'valueB_3'}}}
Run Code Online (Sandbox Code Playgroud)
我希望提取的价值'keyA_1'和'keyB_3'.但是,在我的代码中,我不想使用一堆try/except KeyError进行错误检查,因为我有成千上万的键值对.相反,如果密钥不存在,则只返回None.我找到的一个解决方案是使用python get().这很好用但只适用于第一级键值对.
例如,如果'keyA_1'不存在
dict.get('keyA_1')
Run Code Online (Sandbox Code Playgroud)
会回来的 None
但如果'keyB_3'不存在
dict.get('keyB_1').get('keyB_2').get('keyB_3')
Run Code Online (Sandbox Code Playgroud)
将返回AttributeError: 'NoneType' object has no attribute 'get'而不是None
'keyB_3'如果所有父键及其键存在,则返回值时,简单地执行相同操作会很棒None.有什么建议吗?
小智 13
您可以将默认值作为第二个参数传递给dict.get(),如下所示:
dict.get('keyB_1', {}).get('keyB_2', {}).get('keyB_3')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |