Exemples de gestion d'exception KeyError en Python
1. Qu'est-ce que l'exception KeyError en Python?
Une erreur KeyError en Python est levée lorsque nous essayons d'accéder à une clé d'un dictionnaire qui n'existe pas. C'est l'une des classes d'exception intégrées et elle est levée par de nombreux modules qui travaillent avec des dictionnaires ou des objets ayant des paires clé-valeur.
2. Erreur KeyError en Python avec un dictionnaire
Regardons un exemple simple où une erreur KeyError est levée par le programme.
emp_dict = {'Name': 'Pankaj', 'ID': 1}
emp_id = emp_dict['ID']
print(emp_id)
emp_role = emp_dict['Role']
print(emp_role)
Sortie :
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. Gestion des exceptions KeyError dans Python
Nous pouvons gérer l'exception KeyError en utilisant le bloc try-except. Gérons l'exception KeyError ci-dessus.
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)
Sortie :
1
Key Not Found in Employee Dictionary: 'Role'
4. Éviter l'erreur KeyError lors de l'accès à la clé d'un dictionnaire
Nous pouvons éviter l'erreur KeyError en utilisant la fonction get() pour accéder à la valeur de la clé. Si la clé est manquante, None est renvoyé. Nous pouvons également spécifier une valeur par défaut à renvoyer lorsque la clé est manquante.
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}]')
Sortie : Employé[ID:1, Rôle:Aucun, Salaire:0]
5. Erreur KeyError soulevée par le module Pandas
Il existe quelques fonctions dans le DataFrame Pandas qui déclenchent une exception KeyError.
- rename()
- drop()
6. Références
- Gestion des exceptions en Python – try except de Python
- Page Wiki Erreur de clé
