Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可变深度字典的键错误处理_Python_Error Handling - Fatal编程技术网

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中没有键
,则它将返回默认值