erreur de clé Python

Une Python KeyError est générée lorsque vous essayez d’accéder à un élément dans un dictionnaire qui n’existe pas. Vous pouvez corriger cette erreur en modifiant votre programme pour sélectionner un élément dans un dictionnaire qui existe. Ou vous pouvez gérer cette erreur en vérifiant d’abord si une clé existe.

Vous venez d’être accueilli par une KeyError ? Ne vous inquiétez pas ! Lorsqu’une KeyError est levée, cela signifie que vous essayez d’accéder à une clé dans un dictionnaire qui n’existe pas. Il est facile de traiter et de corriger cette erreur lorsque vous savez comment faire.

Les erreurs de clé peuvent être gérées à l’aide d’un bloc try‚Ķexcept, en utilisant la commande "in‚" mot-clé, ou en recherchant une clé à l’avance à l’aide de l’indexation.

Dans ce guide, nous allons parler de ce que sont les Python KeyErrors et pourquoi elles sont générées. Nous allons passer en revue un exemple d’erreur et comment la corriger afin que vous sachiez comment résoudre les KeyErrors à l’avenir.

Commençons !

Qu’est-ce que une Python KeyError ?

Une Python KeyError se produit lorsque vous tentez d’accéder à un élément dans un dictionnaire qui n’existe pas en utilisant la syntaxe d’indexation. Cette erreur est générée car Python ne peut pas renvoyer une valeur pour un élément qui n’existe pas dans un dictionnaire.

Un dictionnaire Python est un ensemble des paires clé-valeur stockées entre accolades ({}) :

Les clés sont "name", "price", et "RAM" . Les clés apparaissent avant les deux points dans un dictionnaire.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Voyons ce qui se passe si nous essayons de récupérer le nombre de ports USB dans notre dictionnaire :

Notre code renvoie :

Cette erreur nous indique que la clé que nous avons spécifiée n’existe pas. Dans ce cas, la clé manquante est "usb_ports‚".

KeyError Python : Solutions

Pour gérer un dictionnaire Python KeyError vous pouvez :

  • Recherchez une clé à l’avance à l’aide de l’indexation
  • Utilisez le "in‚" mot-clé pour rechercher une clé
  • Utilisez un bloc try‚Ķexcept.

La solution pour gérer la KeyError qui vous convient le mieux variera en fonction de votre cas d’utilisation.

Utilisez la méthode get() du dictionnaire

La méthode get() du dictionnaire Python retourne une valeur dans un dictionnaire. Vous pouvez spécifier une valeur par défaut avec la méthode get(). Cette valeur par défaut est retournée si le nom de la clé que vous avez spécifié n’a pas de valeur.

Considérez le code suivant :

Exécutons notre code à l’aide de l’interpréteur Python et voyons ce qui se passe :

Notre code utilise la méthode du dictionnaire get() pour récupérer "ALU" de notre dictionnaire. Aucune valeur ne correspond à ce nom de clé. La méthode get() renvoie la valeur par défaut que nous avons spécifiée, qui est "non disponible" .

Vérifier une clé à l’avance en utilisant l’indexation

Vous pouvez vérifier l’existence d’une clé en utilisant l’indexation pour éviter de rencontrer une KeyError. Si une clé se trouve dans un dictionnaire, vous pouvez utiliser cette clé. Sinon, vous pouvez demander à votre programme de faire autre chose qui ne dépend pas de cette clé.

√âcrivons un programme qui accède aux clés de notre "raspberry_pi‚" dictionnaire en Python. Vérifions si notre clé est dans notre dictionnaire en utilisant l’indexation :

Nous avons utilisé un Python "if‚" déclaration pour vérifier si notre clé existe. "raspberry_pi[get_key]‚" ne renverra une valeur que si la clé existe. Cela signifie que si notre clé existe, notre "if" l’instruction s’exécutera. Si notre clé n’existe pas, le "else" l’instruction s’exécutera.

Essayons de trouver la RAM de notre Raspberry Pi :

Maintenant, essayons de connaaître le nombre de ports USB de l’ordinateur :

Notre code ne génère pas de KeyError ! En effet, nous avons d’abord vérifié si notre clé existe avant de l’utiliser. Si nous avions utilisé raspberry_pi[get_key] dans notre "else‚" déclaration, notre code renverrait une KeyError.

Utiliser un try…except Block

Un Python try‚Ķexcept block tentera d’exécuter une ligne Si cette ligne de code ne peut pas être exécutée, notre code générera une erreur personnalisée en fonction des exceptions que vous avez indiquées.

Nous pouvons utiliser un bloc try‚Ķexcept pour déterminer l’existence d’une erreur et empêcher une KeyError inattendue d’aider notre programme Python.

Définissons une erreur personnalisée pour notre exemple informatique d’avant en utilisant un bloc try‚Ķexcept :

"Career Karma est entré dans ma vie quand j’en avais le plus besoin et m’a rapidement aidé à faire un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Nous utilisons un bloc try‚Ķexcept pour essayer d’imprimer une information particulière sur l’ordinateur Raspberry Pi sur la console. Si notre code lève une KeyError n’importe o√π dans le bloc "try", notre code exécute le contenu du "sauf" bloc.

Cela signifie que chaque fois qu’une KeyError est levée, "Cette information n’est pas disponible" est affichée sur la console. Essayons de connaaître le nom de l’ordinateur :

Maintenant, essayons de connaaître la disponibilité du port USB de l’ordinateur :

Notre code génère une KeyError dans notre "try‚" bloquer. Cela oblige notre code à exécuter la commande "except" bloc de code.

Rechercher une clé à l’avance en utilisant in

Le "in‚" Le mot-clé est l’un des opérateurs d’appartenance de Python. Il vérifie si un élément est dans une liste de valeurs. Vous pouvez utiliser le "dans" mot-clé pour vérifier si une clé se trouve dans un dictionnaire.

Ce programme vérifiera si une clé existe avant d’imprimer sa valeur sur la console :

Ce code vérifiera si la valeur de "get_key" est une clé dans le dictionnaire "raspberry_pi‚". Si la clé existe, l’instruction "if" s’exécutera . Sinon, l’instruction "else" s’exécutera. Essayons de vérifier les informations sur le processeur de l’ordinateur :

Vérifiez le nom de l’ordinateur :

Notre code fonctionne ! Lorsque nous recherchons une clé qui n’existe pas, le "else" l’instruction s’exécute. Cela signifie qu’aucune KeyError ne peut être levée dans notre code car nous n’essayons pas d’accéder à une clé dans le "else‚" bloc.

Notre code fonctionne ! Lorsque nous recherchons une clé qui n’existe pas, le "else" l’instruction s’exécute. Cela signifie qu’aucune KeyError ne peut être levée dans notre code car nous n’essayons pas d’accéder à une clé dans le "else‚" block.

Conclusion

Une KeyError est levée lorsque vous essayez d’accéder à une valeur à partir d’un dictionnaire qui n’existe pas. Pour résoudre une erreur de clé, vous pouvez rechercher une clé avant de l’utiliser et ne l’utiliser que si la clé existe. Vous pouvez utiliser un bloc try‚Ķexcept pour gérer une erreur de clé.

Pour obtenir des conseils sur la façon d’apprendre le langage de programmation Python, consultez notre Comment apprendre Python. Vous trouverez des liens vers les meilleures ressources d’apprentissage, livres et cours dans ce guide.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method