Python 可变深度字典的键错误处理
我有一个字典列表,有不同的深度和不同的键 例如:Python 可变深度字典的键错误处理,python,error-handling,Python,Error Handling,我有一个字典列表,有不同的深度和不同的键 例如: a = [{attr1: 1, attr2: {secondary_attr1: 'sometext', secondary_attr2: 'sometext', complex_attr: {more_attr: 999}}}, {attr1: 2}] 我使用一个类从列表的每个元素收集我需要的所有信息,但是当我试图从一个键中获取一个不在特定字典中的项时,我得到了keyre
a = [{attr1: 1,
attr2: {secondary_attr1: 'sometext',
secondary_attr2: 'sometext',
complex_attr: {more_attr: 999}}},
{attr1: 2}]
我使用一个类从列表的每个元素收集我需要的所有信息,但是当我试图从一个键中获取一个不在特定字典中的项时,我得到了keyrerror
下面是我如何为列表a的每个元素创建实例:
InsertLine(i['attr1'],i['attr2']['secondary_attr1'])
我试图定义一个简单的函数,但它不起作用:
def handle_keyerror(try_key):
try:
try_key
return try_key
except KeyError:
return 'NULL'
我希望我把问题说清楚了 函数不起作用,因为它总是返回try\u键。试试这个
def handle_keyerror(try_key):
try:
your_dictionary[try_key]
except KeyError:
return None
return try_key
无论如何,这样检查是个坏主意
您应该使用dict.get(key,default=None)
。如果dict中没有键键,则它将返回默认值