Поиск по сайту:

Примеры обработки исключений 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