Python-Schlüsselfehler

Ein Python KeyError wird ausgelöst, wenn Sie versuchen, auf ein Element in einem nicht vorhandenen Wörterbuch zuzugreifen. Sie können diesen Fehler beheben, indem Sie Ihr Programm so ändern, dass ein Element aus einem vorhandenen Wörterbuch ausgewählt wird. Oder Sie können diesen Fehler beheben, indem Sie zuerst prufen, ob ein Schlussel vorhanden ist.

Wurden Sie gerade von einem KeyError begrußt? Mach dir keine Sorgen! Wenn ein KeyError ausgelöst wird, bedeutet dies, dass Sie versuchen, auf einen Schlussel in einem nicht vorhandenen Wörterbuch zuzugreifen. Die Handhabung und Behebung dieses Fehlers ist einfach, wenn Sie wissen, wie.

KeyErrors k√∂nnen mit einem try‚Ķau√üer Block behandelt werden, mit dem "in‚" Schlusselwort, oder indem Sie im Voraus mithilfe der Indizierung nach einem Schlussel suchen.

In diesem Handbuch werden wir daruber sprechen, was Python KeyErrors sind und warum sie ausgelöst werden. Wir werden ein Beispiel fur einen Fehler und dessen Behebung durchgehen, damit Sie in Zukunft wissen, wie Sie KeyErrors beheben können.

Lass uns loslegen!

Was ist ein Python KeyError?

Ein Python KeyError tritt auf, wenn Sie versuchen, mithilfe der Indizierungssyntax auf ein Element in einem Wörterbuch zuzugreifen, das nicht existiert. Dieser Fehler wird ausgelöst, weil Python keinen Wert fur ein Element zuruckgeben kann, das nicht in einem Wörterbuch vorhanden ist.

Ein Python-Wörterbuch ist eine Menge von Schlussel-Wert-Paaren, die in geschweiften Klammern ({}) gespeichert sind:

Die Tasten sind "Name‚", "Preis‚" und "RAM‚" . Schlussel erscheinen in einem W√∂rterbuch vor einem Doppelpunkt.

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Werde noch heute zu einem Bootcamp eingeladen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate mit dem Karrierewechsel, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Lass uns sehen, was passiert wenn wir versuchen, die Anzahl der USB-Ports in unserem Wörterbuch abzurufen:

Unser Code gibt zuruck:

Dieser Fehler sagt uns, dass der von uns angegebene Schlussel nicht existiert. In diesem Fall ist der fehlende Schlussel "usb_ports‚".

KeyError Python: Lösungen

Um einen Python-Wörterbuch-KeyError zu behandeln, können Sie:

  • Prufen Sie vorab mithilfe der Indizierung, ob ein Schlussel vorhanden ist.
  • Verwenden Sie das "in‚" Schlusselwort, um nach einem Schlussel zu suchen
  • Verwenden Sie einen try‚Ķau√üer Block.

Die fur Sie am besten geeignete Lösung zur Behandlung des KeyError hängt von Ihrem Anwendungsfall ab.

Verwenden Sie die Dictionary-get()-Methode

Die Python-Wörterbuch get()-Methode gibt einen Wert in einem Wörterbuch zuruck. Sie können einen Standardwert mit der Methode get() angeben. Dieser Standardwert wird zuruckgegeben, wenn der Name des von Ihnen angegebenen Schlussels keinen Wert hat.

Beachten Sie folgenden Code:

Lassen Sie unseren Code mit dem Python-Interpreter ausfuhren und sehen Sie, was passiert:

Unser Code verwendet die Methode Dictionary get(), um "ALU‚" von unserem . abzurufen W√∂rterbuch. Kein Wert entspricht diesem Schlusselnamen. Die Methode get() gibt den von uns angegebenen Standardwert zuruck, der "nicht verfugbar‚" .

√úber die Indizierung im Voraus auf einen Schlussel prufen

Sie können mithilfe der Indizierung prufen, ob ein Schlussel vorhanden ist, um einen KeyError zu vermeiden. Wenn sich ein Schlussel in einem Wörterbuch befindet, können Sie diesen Schlussel verwenden. Andernfalls können Sie Ihr Programm anweisen, etwas anderes zu tun, das nicht von diesem Schlussel abhängt.

Lass uns ein Programm schreiben, das auf Schlussel in unserem "raspberry_pi‚" W√∂rterbuch in Python. Lassen Sie uns mithilfe der Indexierung uberprufen, ob unser Schlussel in unserem W√∂rterbuch enthalten ist:

Wir haben a Python "if‚" -Anweisung, um zu uberprufen, ob unser Schlussel existiert. "raspberry_pi[get_key]‚" gibt nur einen Wert zuruck, wenn der Schlussel vorhanden ist. Dies bedeutet, dass, wenn unser Schlussel vorhanden ist, unser "wenn‚" Anweisung ausgefuhrt wird. Wenn unser Schlussel nicht vorhanden ist, wird das "sonst‚" Anweisung ausgefuhrt wird.

Versuchen wir, den RAM fur unseren Raspberry Pi herauszufinden:

Jetzt versuchen wir herauszufinden, wie viele USB-Anschlusse der Computer hat:

Unser Code l√∂st keinen KeyError aus! Dies liegt daran, dass wir zuerst uberpruft haben, ob unser Schlussel vorhanden ist, bevor wir ihn verwenden. H√§tten wir raspberry_pi[get_key] in unserem "else‚" -Anweisung wurde unser Code einen KeyError zuruckgeben.

Verwenden eines try…außer Block

Ein Python try…außer Block wird versuchen, eine Zeile auszufuhren Wenn diese Codezeile nicht ausgefuhrt werden kann, löst unser Code gemäß den von Ihnen angegebenen Ausnahmen einen benutzerdefinierten Fehler aus.

Wir können einen try…except-Block verwenden, um das Vorhandensein eines Fehlers zu ermitteln und verhindern, dass ein unerwarteter KeyError unserem Python-Programm hilft.

Lassen Sie uns einen benutzerdefinierten Fehler fur unser Computerbeispiel von fruher definieren, indem Sie einen try…except-Block verwenden:

"Karriere Karma trat in mein Leben ein als ich es am dringendsten brauchte und mir schnell geholfen hat, mit einem Bootcamp zu matchen. Zwei Monate nach meinem Abschluss habe ich meinen Traumjob gefunden, der meinen Werten und Lebenszielen entspricht!"

Venus, Software Engineer bei Rockbot

Wir verwenden einen try‚Ķexcept-Block, um zu versuchen, eine bestimmte Information uber den Raspberry Pi-Computer an die Konsole auszudrucken. Wenn unser Code irgendwo im "try‚"-Block einen KeyError ausl√∂st, fuhrt unser Code den Inhalt des "au√üer‚"-Block.

Dies bedeutet, dass jedes Mal, wenn ein KeyError ausgel√∂st wird, "Diese Information ist nicht verfugbar‚" an die Konsole ausgegeben wird. Versuchen wir, den Namen des Computers herauszufinden :

Jetzt versuchen wir, mehr uber die Verfugbarkeit des USB-Ports des Computers zu erfahren:

Unser Code l√∂st einen KeyError in unserem "Versuch‚" Block. Dies fuhrt dazu, dass unser Code die "au√üer‚" Codeblock.

Prufen Sie den Schlussel im Voraus mit in

Der "in‚" Das Schlusselwort ist einer der Mitgliedschaftsoperatoren von Python. Es pruft, ob ein Element in einer Werteliste enthalten ist. Sie k√∂nnen den "in‚" -Schlusselwort, um zu uberprufen, ob ein Schlussel in einem W√∂rterbuch enthalten ist.

Dieses Programm pruft, ob ein Schlussel existiert, bevor es seinen Wert an die Konsole ausgibt:

Dieser Code pruft, ob der Wert von "get_key‚" ein Schlussel im "raspberry_pi‚"-W√∂rterbuch ist. Wenn der Schlussel vorhanden ist, wird die "if‚"-Anweisung ausgefuhrt . Andernfalls wird die "else‚"-Anweisung ausgefuhrt. Versuchen wir, nach Informationen zur CPU des Computers zu suchen:

Lassen Sie uns den Namen des Computers uberprufen:

Unser Code funktioniert! Wenn wir nach einem nicht vorhandenen Schlussel suchen, wird das "sonst‚" Anweisung l√§uft. Das bedeutet, dass in unserem Code kein KeyError ausgel√∂st werden kann, da wir nicht versuchen, auf einen Schlussel in der "sonst‚" blockieren.

Unser Code funktioniert! Wenn wir nach einem nicht vorhandenen Schlussel suchen, wird das "sonst‚" Anweisung l√§uft. Das bedeutet, dass in unserem Code kein KeyError ausgel√∂st werden kann, da wir nicht versuchen, auf einen Schlussel in der "sonst‚" block.

Schlussfolgerung

Ein KeyError wird ausgelöst, wenn Sie versuchen, auf einen Wert aus einem Wörterbuch zuzugreifen, das nicht existiert. Um einen Schlusselfehler zu beheben, können Sie im Voraus nach einem Schlussel suchen, bevor Sie ihn verwenden, und ihn nur verwenden, wenn der Schlussel vorhanden ist. Sie können einen try…except-Block verwenden, um einen Schlusselfehler zu behandeln.

Informationen zum Erlernen der Programmiersprache Python finden Sie in unserem umfassenden Anleitung zum Erlernen von Python. In diesem Leitfaden finden Sie Links zu den wichtigsten Lernressourcen, Buchern und Kursen.

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