Corriger l'erreur de clé dans un dictionnaire en Python
Dictionary est une structure de données évolutive disponible en Python. Il stocke les données sous la forme de paires clé-valeur où une clé peut être n’importe quel objet hachable et immuable et la valeur peut être n’importe quoi ; une liste, un tuple, un dictionnaire, une liste d’objets, etc.
À l’aide de clés, nous pouvons accéder aux valeurs vers lesquelles ces clés pointent. Si une clé inexistante est donnée à un dictionnaire, il lève une exception KeyError
. Dans cet article, nous allons apprendre à gérer cette exception en Python.
Correction de l’exception KeyError
dans un dictionnaire en Python
Pour résoudre l’exception KeyError
, on peut vérifier si la clé existe dans le dictionnaire avant d’y accéder. La méthode keys()
renvoie une liste de clés à l’intérieur du dictionnaire. Avant d’accéder à la valeur d’une clé, il est recommandé de vérifier si la clé existe dans cette liste si vous n’êtes pas sûr de son existence. Le code Python suivant décrit la même chose.
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.")
Production :
101
501
'r' not found.
'f' not found.
301
Outre l’approche décrite ci-dessus, on peut également utiliser un bloc try...except
pour intercepter l’exception KeyError
ou toute exception. Reportez-vous au code Python suivant pour la même chose.
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.")
Production :
101
501
'r' not found.
'f' not found.
301
Le code sous le bloc except
sera exécuté si une exception KeyError
se produit.
Article connexe - Python Error
- Correction de TabError en Python
- Correction de l'erreur Python Return Outside Function
- Correction de l'erreur String Must Be Indices en Python
- Correction de l'erreur syntaxerror: unexpected character after line continuation character en Python
- Correction de l'erreur TypeError: iteration over a 0-d array dans Python NumPy
- Correction de l'erreur TypeError: must be str, not int en Python