Python KeyError: Fehlermeldungen – Hilfe & Lösungen

30d2375fe32e44c7a43e5ebe15e2d2a7

KeyError: Python Anfängerfehler vermeiden und lösen

KeyError: Wo kommt der Fehler her?

KeyErrors sind ein wesentlicher Grund, um sich mit der Python-Programmierung vertraut zu machen. Da viele neue Python-Programmierer mit dieser Ausnahme konfrontiert sind, ist das Verständnis der Ursache und Lösung der Schlüssel zum Fortschritt als Programmierer.

Wenn Sie versuchen, auf einen Schlüssel zuzugreifen, der sich nicht in einem Wörterbuch (dict) befindet, wird eine Python KeyError-Ausnahme ausgelöst.

Ein Wörterbuch ist im Deutschen eine assoziative Liste, die ähnlich wie eine normale Liste funktioniert. In Python nennt es sich „Dictionary“ und seine Indizes sind Text statt Zahlen. Der Dictionary-Datentyp kann verwendet werden, um eine Zuordnungstabelle zu erstellen. Aber schauen wir uns ein Beispiel an.

Der erste Schritt besteht darin, in Python ein leeres „Wörterbuch“ als Wörterbuch anzulegen – dies ist an den geschweiften Klammern zu erkennen. Anschließend füllen wir es mit Wertepaaren, bestehend aus einem Bezeichner (Name) und einem Wert.

# Dictionary (Wörterbuch) anlegen 
scooter = {}

# Wörterbuch mit Daten füllen
scooter['model'] 	= 'SoFlow SO4 Gen 2'
scooter['preis'] 	= '698.99'
scooter['motor'] 	= '350W'
scooter['akku'] 	= 'Li-Ion, 36V, 281Wh, 7.8Ah'
scooter['hersteller'] 	= 'SoFlow'

Jetzt können wir aus dem angelegten Wörterbuch Daten abrufen.

print('<br>Preis: ', scooter[preis], ' EUR')

## Ausgabe ##
Preis: 698.99 EUR  

In diesem Fall ist alles okay. Das Feld „preis“ ist vorhanden. Wird jedoch versucht ein Feld aufzurufen, welches im Dictionary (Wörterbuch) nicht vorhanden ist, kommt es zu einem sogenannten „KeyError“-Fehler.

Hilfe beim KeyError-Fehler

Du musst prüfen, ob ein bestimmtes Feld im Wörterbuch existiert und dann entscheiden, was passieren soll. Ist der Begriff vorhanden – kann er ausgelesen und verarbeitet werden. Ist der Begriff nicht vorhanden, erfolgt kein Zugriff auf das Wörterbuch und somit wird kein Fehler generiert.

Das „Zauberwort“ ist die Methode „.keys()“. Dieser „Befehl“ durchsucht die Schlüssel eines Python-Wörterbuchs.

# ----- KeyError abfangen ---------
bezeichner = preise
if bezeichner in scooter.keys():	# Ist Inhalt der Variable 'bezeichner' im Wörterbuch?
	preis	= scooter[bezeichner]	# Ja: Variable preis wird mit Inhalt aus Wörterbuch gefüllt
else:
  	# kein Feld "preis" gefunden
	preis	= "k.A."

Wir wollen Inhalte aus dem Feld „preis“ aus dem Wörterbuch lesen. Leider schlägt der Versuch fehl. Es gibt kein Feld mit dem Bezeichner „preise“ in dem angesprochenen Wörterbuch, nur ein Eintrag im Feld „preis“ (Einzahl).

Ein KeyError tritt auf, wenn versucht wird, in einem Wörterbuch (Dictionary) ein nicht vorhandenes Feld anzusprechen.

Rubrik (deutsch): Tutorial, Anleitung, Fehler, Probleme, Hilfe