什么是 Python KeyError Exception?
Python KeyError是当我们试图从 dict 访问一个密钥时提出的,它不存在,它是内置的例外类之一,由许多模块提出,这些模块与 dict 或具有密钥值对的对象一起工作。
Python 关键错误与字典
让我们看看一个简单的例子,该程序提出了KeyError。
1emp_dict = {'Name': 'Pankaj', 'ID': 1}
2
3emp_id = emp_dict['ID']
4print(emp_id)
5
6emp_role = emp_dict['Role']
7print(emp_role)
输出:
11
2Traceback (most recent call last):
3 File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/errors/keyerror_examples.py", line 6, in <module>
4 emp_role = emp_dict['Role']
5KeyError: 'Role'
Python 关键错误例外处理
我們可以使用 try-except區塊來處理 KeyError 例外。
1emp_dict = {'Name': 'Pankaj', 'ID': 1}
2
3try:
4 emp_id = emp_dict['ID']
5 print(emp_id)
6
7 emp_role = emp_dict['Role']
8 print(emp_role)
9except KeyError as ke:
10 print('Key Not Found in Employee Dictionary:', ke)
输出:
11
2Key Not Found in Employee Dictionary: 'Role'
4. 在访问字典密钥时避免 KeyError
我们可以通过使用 get() 函数来访问密钥值来避免 KeyError. 如果密钥丢失,则返回 None. 我们也可以指定默认值来返回密钥丢失时。
1emp_dict = {'Name': 'Pankaj', 'ID': 1}
2
3emp_id = emp_dict.get('ID')
4emp_role = emp_dict.get('Role')
5emp_salary = emp_dict.get('Salary', 0)
6
7print(f'Employee[ID:{emp_id}, Role:{emp_role}, Salary:{emp_salary}]')
工作岗位: 工作岗位: 工作岗位: 工作岗位: 工作岗位: 工作岗位: 工作岗位:
5. Pandas 模块引发的关键错误
Pandas DataFrame 中有一些函数会引发 KeyError 例外。