Python KeyError 异常处理示例

什么是Python KeyError异常

当我们尝试从不存在的 dict 访问键时,会引发 Python KeyError。 它是内置异常类之一,由许多使用 dict 或具有键值对的对象的模块引发。

Python KeyError 与字典

让我们看一个由程序引发 KeyError 的简单示例。

emp_dict = {'Name': 'Pankaj', 'ID': 1}

emp_id = emp_dict['ID']
print(emp_id)

emp_role = emp_dict['Role']
print(emp_role)

上面程序输出结果如下

Python KeyError 异常处理示例

Python KeyError 异常处理

我们可以使用 try-except 块来处理 KeyError 异常。 让我们处理上面的 KeyError 异常。

emp_dict = {'Name': 'Pankaj', 'ID': 1}

try:
    emp_id = emp_dict['ID']
    print(emp_id)

    emp_role = emp_dict['Role']
    print(emp_role)
except KeyError as ke:
    print('Key Not Found in Employee Dictionary:', ke)

上面程序处理 KeyError 异常之后的运行结果如下所示

Python KeyError 异常处理示例

访问字典键时避免 KeyError

我们可以通过使用 get() 函数来访问键值来避免 KeyError。 如果缺少 key,则返回 None。 我们还可以指定在缺少键时返回的默认值。

emp_dict = {'Name': 'Pankaj', 'ID': 1}

emp_id = emp_dict.get('ID')
emp_role = emp_dict.get('Role')
emp_salary = emp_dict.get('Salary', 0)

print(f'Employee[ID:{emp_id}, Role:{emp_role}, Salary:{emp_salary}]')

上面程序运行结果如下

Employee[ID:1, Role:None, Salary:0]

Pandas DataFrame 中有一些函数会引发 KeyError 异常。