python 字典get方法问题

a={
    'a':{
        'b':'c'
    }
}
b=a['a'].get('b','')
print(b)

以上是正常的,但是如果key没有a的话,就报错了。
怎么样写好才可以不报错?
例如get方法没有这个key可以设默认值。
难道要if判断是否有a,再进行下去?

阅读 4k
5 个回答

b=a.get('a', {}).get('b','')这样不就可以了?

如果你是希望没有key就创建的话就使用collections的defaultdict,如果只是判断的话:
if not a.get('a', {}).get('b',None): # do something

from collections import defaultdict
a = defaultdict(int) # dict,list,other...
print(a.get('abc'))

你看这个合适吗

>>> if 'a' in a.keys():
...     b = a['a'].get('b', None)

报错不应该想到try except处理么。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题