Python KeyError异常处理示例

时间:2020-02-23 14:42:52  来源:igfitidea点击:

1.什么是Python KeyError异常?

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

2.带有字典的Python KeyError

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

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

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

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

输出:

1
Traceback (most recent call last):
File "/Users/hyman/Documents/PycharmProjects/hello-world/theitroad/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': 'hyman', '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': 'hyman', '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}]')

5.Pandas 模块引发的KeyError

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

  • rename()
  • drop()