Python KeyError异常处理示例
Python中的KeyError异常是什么?
当我们尝试从字典中访问不存在的键时,Python会引发KeyError。这是一种内置的异常类,由许多与字典或具有键值对的对象一起工作的模块引发。
2. Python字典中的键错误。
让我们看一个简单的例子,程序会引发KeyError错误。
emp_dict = {'Name': 'Pankaj', 'ID': 1}
emp_id = emp_dict['ID']
print(emp_id)
emp_role = emp_dict['Role']
print(emp_role)
输出:(paraphrase in Chinese)
1
Traceback (most recent call last):
File "/Users/scdev/Documents/PycharmProjects/hello-world/scdev/errors/keyerror_examples.py", line 6, in <module>
emp_role = emp_dict['Role']
KeyError: 'Role'
3. 处理 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)
输出:
1
Key Not Found in Employee Dictionary: 'Role'
4. 在访问字典键时避免出现 KeyError
我们可以通过使用get()函数来访问键值,从而避免KeyError。如果键丢失,将返回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}]')
员工[ID:1,角色:无,薪水:0] 的输出。
5. Pandas模块引发的KeyError
在 Pandas DataFrame 中有一些函数会引发 KeyError 异常。
- rename()
- drop()
6. 参考文献
- Python Exception Handling – Python try except
- KeyError Wiki Page