作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个超过 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')
将返回无
但是如果'keyB_3'
不存在
dict.get('keyB_1').get('keyB_2').get('keyB_3')
将返回 AttributeError: 'NoneType' object has no attribute 'get'
而不是 None
简单地对 'keyB_3'
执行相同的操作会很棒,如果所有父键及其键都存在,它会返回值,否则返回 None
。有什么建议吗?
最佳答案
您可以将默认值作为第二个参数传递给 dict.get()
,如下所示:
dict.get('keyB_1', {}).get('keyB_2', {}).get('keyB_3')
关于python - 如何将 python "get()"用于比第一级字典键更深的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37382156/
我是一名优秀的程序员,十分优秀!