KeyError в словаре
Разбираем ошибку обращения к несуществующему ключу словаря.
Что такое KeyError
Словарь хранит пары «ключ — значение»: по ключу вы достаёте значение, как слово из толкового словаря. KeyError возникает, когда вы просите значение по ключу, которого в словаре нет. Python не придумывает ответ, а честно сообщает: такого ключа не существует.
Частые причины
Обычно виноваты опечатка в имени ключа, разный регистр букв или предположение, что ключ точно есть, хотя данные могли прийти неполными. Ещё частый случай — лишний пробел в ключе: визуально одинаково, а для словаря это разные строки.
Как получать значения безопасно
Прежде чем брать значение, можно проверить, есть ли ключ в словаре. Ещё удобнее специальный метод, который возвращает значение по ключу, а если ключа нет — заранее заданный запасной вариант вместо ошибки. Так программа не падает на неожиданных данных, а мягко их обрабатывает.
Частые вопросы
Чем KeyError отличается от IndexError? KeyError — про словари (обращение по ключу), IndexError — про списки (обращение по номеру-индексу).
Где потренироваться со словарями? Начните с маленьких примеров: телефонная книжка, счёт очков по имени игрока. Логику удобно нарабатывать в браузерном тренажёре Дрон Кодер, где результат виден сразу.
Начать игру бесплатно