Solucionar el error de clave en un diccionario en Python
Dictionary es una estructura de datos escalable disponible en Python. Almacena datos en forma de pares clave-valor donde una clave puede ser cualquier objeto inmutable y que se pueda modificar y el valor puede ser cualquier cosa; una lista, una tupla, un diccionario, una lista de objetos, etc.
Usando claves, podemos acceder a los valores a los que apuntan estas claves. Si se le da una clave inexistente a un diccionario, arroja una excepción KeyError
. En este artículo, aprenderemos cómo manejar esta excepción en Python.
Solucione la excepción KeyError
en un diccionario en Python
Para resolver la excepción KeyError
, se puede comprobar si la clave existe en el diccionario antes de acceder a ella. El método keys()
devuelve una lista de claves dentro del diccionario. Antes de acceder al valor de una clave, se recomienda verificar si la clave existe en esta lista si no está seguro de su existencia. El siguiente código de Python muestra lo mismo.
data = {
"a": 101,
"b": 201,
"c": 301,
"d": 401,
"e": 501,
}
keys = ["a", "e", "r", "f", "c"]
for key in keys:
if key in data.keys():
print(data[key])
else:
print(f"'{key}' not found.")
Producción :
101
501
'r' not found.
'f' not found.
301
Además del enfoque discutido anteriormente, también se puede usar un bloque try...except
para capturar la excepción KeyError
o cualquier excepción. Consulte el siguiente código de Python para lo mismo.
data = {
"a": 101,
"b": 201,
"c": 301,
"d": 401,
"e": 501,
}
keys = ["a", "e", "r", "f", "c"]
for key in keys:
try:
print(data[key])
except:
print(f"'{key}' not found.")
Producción :
101
501
'r' not found.
'f' not found.
301
El código debajo del bloque except
se ejecutará si ocurre una excepción KeyError
.
Artículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python