Python-Schlüsselfehler
Python-Funktionen und -Methoden
Michael Zippo
31.10.2021
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.
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!"
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.
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.