d=[{'a':{'b':[]}},{'a':{'b':{'c':[]}}},{'a':{'b':{'c':[],'d':[],'e':[]}}}]
我想要一些东西为'c'
中的每个事件返回'd'
或'e'
或d
的值,例如:
for i in d:
print(i.get('a',{}).get('b',{}).get('c','None')
但是,并非i
中的每个d
都将'b'
作为dict
,有些i['a']['b']
是None
或list
,因此无法执行dict.get('c',None)
。虽然我可以
每个键都使用if i['a']['b']!= None
,但我必须使用['b']
之类的许多键,
有什么切肉刀方法可以做到这一点?
答案 0 :(得分:0)
您可以尝试获取密钥并处理任何异常:
d = [{'a':{'b':[]}},{'a':{'b':{'c':[]}}},{'a':{'b':{'c':[],'d':[],'e':[]}}}]
for i in d:
try:
print(i['a']['b']['c'])
except (KeyError, TypeError):
pass