Lingua-e
← Errores
Python

Qué significa KeyError y cómo solucionarlo

Referencia del error

KeyError

Lenguaje

Python

Severidad

Media

Cuándo ocurre

Un KeyError se lanza en Python cuando intentas acceder a una clave de un diccionario que no existe.

Posibles soluciones

Usa el método .get() con un valor por defecto, o verifica con el operador in antes de acceder. Si esperas que la clave siempre esté presente, valida o registra los datos que construyen el diccionario.

Más detalles

Un KeyError se lanza en Python cuando intentas acceder a una clave de un diccionario que no existe. Python no puede encontrar la clave que pediste, por lo que lanza este error en lugar de devolver un valor.

Por qué ocurre

  • Acceder a una clave que nunca fue agregada al diccionario.
  • Error tipográfico en el nombre de la clave (por ejemplo: 'Email' en vez de 'email').
  • La clave fue eliminada antes con del o .pop().
  • Asumir que una clave existe sin verificarlo, por ejemplo al leer respuestas de APIs o datos del usuario.

Posibles soluciones

Usa el método .get() con un valor por defecto, o verifica con el operador in antes de acceder. Si esperas que la clave siempre esté presente, valida o registra los datos que construyen el diccionario.

Ejemplos

Python

Código que causa el error

user = {"name": "Alice", "age": 30}
print(user["email"])

Error en la terminal

Traceback (most recent call last):
  File "app.py", line 2, in <module>
    print(user["email"])
KeyError: 'email'

Código corregido

user = {"name": "Alice", "age": 30}
# Option 1: check first
if "email" in user:
    print(user["email"])

# Option 2: use .get() with a default
print(user.get("email", "not provided"))

Practica en inglés

¿Cómo le explicarías un KeyError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis