Python KeyError unntak

Python KeyError unntak
De KeyError Unntak kan oppstå i Python av flere årsaker. Å prøve å få tilgang til den ugyldige nøkkelen til Python -ordboken er en av dem. Ordboken brukes til å lagre flere verdier der hver verdi er tilgjengelig med en bestemt nøkkelverdi. De KeyError oppstår når en nøkkel i en ordbok er prøvd å få tilgang til som ikke eksisterer eller for å prøve å få tilgang til den ugyldige tasten. Denne typen KeyError kan unngås ved å få tilgang til de gyldige ordbokstastene eller kan håndteres ved å bruke prøve-bortsett fra Blokk av Python. Dette unntaket kan også oppstå for noen andre Python -moduler. Måtene å håndtere eller unngå KeyError Unntak når du får tilgang til Python -ordboken vises i denne opplæringen.

Eksempel 1: Forekomst av nøkkelrings unntak for ugyldig nøkkel

Lag en Python -fil med følgende skript for å sjekke forekomsten av KeyError for den ugyldige nøkkelen til ordboken. I manuset er en ordbok med tre nøkkelverdipar blitt erklært. Deretter har tre nøkler blitt brukt til å lese ordboksverdiene der nøkkelen som heter 'type' eksisterer ikke i ordboken. KeyError vil oppstå på tidspunktet for å lese 'Type' -verdien.

# Erklære en ordbok
DIC_CUSTOMERS = 'Customer_id': 'B-45322', 'Navn': 'Meena Kumari', 'Account_Type': 'Saving'
# Les og skriv ut kunde -IDen
id = dic_customers ['customer_id']
Print ("Customer ID:", ID)
# Les og skriv ut kundenavnet
Navn = DIC_CUSTOMERS ['Navn']
Print ("Kundenavn:", navn)
# Les og skriv ut kontotypen
type = dic_customers ['type']
Print ("Kontotype:", type)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Verdiene for de gyldige nøklene til ordboken er skrevet ut, og nøkkelringen er vist for den ugyldige nøkkelen, 'type'.

Eksempel-2: Håndtering av nøkkelrings unntak ved å bruke Try-Procept-blokken

Nøkkelrings unntaket kan håndteres på forskjellige måter. En måte er å bruke prøve-bortfallsblokken for å håndtere denne feilen. Lag en Python-fil med følgende skript for å håndtere KeyError ved hjelp av Try-Procept-blokken. En ordbok med tre elementer er blitt erklært i manuset. KeyError vil oppstå på tidspunktet for å lese verdien av nøkkelen som heter 'Type' som ikke eksisterer i ordboken, og den tilpassede feilmeldingen vises.

# Erklære en ordbok
DIC_CUSTOMERS = 'Customer_id': 'B-45322', 'Navn': 'Meena Kumari', 'Account_Type': 'Saving'
prøve:
# Les og skriv ut kunde -IDen
id = dic_customers ['customer_id']
Print ("Customer ID:", ID)
# Les og skriv ut kundenavnet
Navn = DIC_CUSTOMERS ['Navn']
Print ("Kundenavn:", navn)
# Les og skriv ut kontotypen
type = dic_customers ['type']
Print ("Kontotype:", type)
Bortsett fra KeyError som nøkkel:
# Skriv ut feilmelding
Print (' -tasten eksisterer ikke i ordboken.'.Format (tast))

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Verdiene til de gyldige nøklene til ordboken er skrevet ut, og feilen er vist for ugyldig tast.

Eksempel-3: Unngå nøkkelrings unntak ved å bruke get () -funksjon

De KeyError Unntak kan unngås ved å bruke get () -funksjonen uten å bruke Try_except -blokken. Get () er en innebygd funksjon av Python for å lese verdien av den spesielle nøkkelen til ordboken. Denne funksjonen returnerer verdien av nøkkelen hvis nøkkelen eksisterer; Ellers kommer det tilbake Ingen. Lag en Python -fil med følgende skript for å vite hvordan du kan unngå nøkkelringen ved å bruke get () -funksjonen. I skriptet har get () -funksjonen blitt brukt til å lese to gyldige nøkler og en ugyldig nøkkel i ordboken.

# Erklære en ordbok
DIC_CUSTOMERS = 'Customer_id': 'B-45322', 'Navn': 'Meena Kumari', 'Account_Type': 'Saving'
# Angi nøkkelverdien
nøkkel = 'navn'
# Skriv ut verdien på nøkkelen hvis det eksisterer
print ("Verdien av -tasten er: ".Format (tast, DIC_CUSTOMERS.Get (Key))))
# Angi nøkkelverdien
nøkkel = 'type'
# Skriv ut verdien på nøkkelen hvis det eksisterer
print ("Verdien av -tasten er: ".Format (tast, DIC_CUSTOMERS.Get (Key))))
# Angi nøkkelverdien
nøkkel = 'balanse'
""
Skriv ut verdien på nøkkelen hvis det eksisterer,
ellers angi verdien for den nye tasten
""
print ("Verdien av -tasten er: ".Format (tast, DIC_CUSTOMERS.Get (Key, 60000))))

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. 'type' Nøkkel eksisterer ikke i ordboken. Så 'Ingen' Verdien er returnert av get () -funksjonen for denne nøkkelen.

Eksempel-4: Unngå unntak for nøkkelring ved bruk av IF-Else-setningen

De KeyError Unntak kan også unngås uten å bruke get () -funksjonen. Lag en Python -fil med følgende skript for å unngå KeyError unntak ved å sjekke eksistensen av nøkkelen til ordboken. Funksjonen som heter 'Check_key' er blitt erklært i manuset for å sjekke eksistensen av hver nøkkel i ordboken. Funksjonen vil returnere den formaterte verdien av nøkkelen hvis nøkkelen eksisterer i ordboken; Ellers vil den returnere feilmeldingen. En ordbok med tre elementer har blitt brukt her. Til å begynne med, den 'Kunde ID' vil bli sjekket som finnes i ordboken. Neste, 'type'Nøkkel som ikke eksisterer i ordboken vil bli sjekket.

# Definer funksjon for å sjekke nøkkelen som eksisterer eller ikke
def check_key (k, dic):
Hvis K i DIC.Keys ():
print ("Verdien -tasten er ."".Format (k, dic [k]))
ellers:
Print (" -tasten eksisterer ikke i ordboken."".Format (k))
# Erklære en ordbok
DIC_CUSTOMERS = 'Customer_id': 'B-45322', 'Navn': 'Meena Kumari', 'Account_Type': 'Saving'
# Ring funksjonen for å sjekke 'Customer_id' -tasten
check_key ('customer_id', dic_customers)
# Ring funksjonen for å sjekke 'Type' -tasten
check_key ('type', dic_customers)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Verdien av 'Kunde ID'Nøkkel er skrevet ut, og feilmeldingen er skrevet ut for 'type' nøkkel.

Konklusjon:

Ulike måter å unngå nøkkelrings unntaket som skjer for den ikke-eksisterende nøkkelen til Python-ordboken er vist i denne opplæringen. Python -brukerne kan følge noen av måtene som er nevnt her basert på deres krav.