Примеры обработки исключений Python KeyError
1. Что такое исключение Python KeyError?
Python KeyError возникает, когда мы пытаемся получить доступ к несуществующему ключу из dict. Это один из встроенных классов исключений, который вызывается многими модулями, работающими с dict или объектами, имеющими пары ключ-значение.
2. 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)
Выход:
1
Traceback (most recent call last):
File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/errors/keyerror_examples.py", line 6, in <module>
emp_role = emp_dict['Role']
KeyError: 'Role'
3. Обработка исключений Python KeyError
Мы можем обработать исключение KeyError, используя блок try-except. Давайте обработаем вышеуказанное исключение 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 при доступе к ключу словаря
Мы можем избежать KeyError, используя функцию get() для доступа к значению ключа. Если ключ отсутствует, возвращается 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. Ошибка KeyError, вызванная модулем Pandas
В Pandas DataFrame есть несколько функций, которые вызывают исключение KeyError.
- переименовать()
- сбросить()
6. Ссылки
- Обработка исключений Python — попытка исключения Python
- Вики-страница KeyError