python keyerror

Un KeyError Python viene generato quando si tenta di accedere a un elemento in un dizionario che non esiste. Puoi correggere questo errore modificando il tuo programma per selezionare un elemento da un dizionario che esiste. Oppure puoi gestire questo errore controllando prima se esiste una chiave.

Sei appena stato accolto da un KeyError? Non preoccuparti! Quando viene sollevato un KeyError, significa che stai tentando di accedere a una chiave all’interno di un dizionario che non esiste. Gestire e correggere questo errore è facile quando sai come fare.

Gli errori di chiave possono essere gestiti usando un blocco try‚Ķeccetto, usando il comando "in" o controllando in anticipo la presenza di una chiave utilizzando l’indicizzazione.

In questa guida, parleremo di cosa sono i Python KeyError e perché vengono generati. Esamineremo un esempio di errore e come risolverlo in modo che tu sappia come risolvere KeyErrors in futuro.

Cominciamo!

Che cos’è un Python KeyError?

Un Python KeyError si verifica quando si tenta di accedere a un elemento in un dizionario che non esiste utilizzando la sintassi di indicizzazione. Questo errore viene generato perché Python non può restituire un valore per un elemento che non esiste in un dizionario.

Un Dizionario Python è un insieme di coppie chiave-valore memorizzate tra parentesi graffe ({}):

Le chiavi sono "name", "price" e "RAM" . Le chiavi appaiono prima dei due punti in un dizionario.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver frequentato un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Vediamo cosa succede se proviamo a recuperare il numero di porte USB nel nostro dizionario:

Il nostro codice restituisce:

Questo errore ci dice che la chiave che abbiamo specificato non esiste. In questo caso, la chiave mancante è "usb_ports".

KeyError Python: Solutions

Per gestire un KeyError del dizionario Python puoi:

  • Controlla in anticipo la presenza di una chiave utilizzando l’indicizzazione
  • Utilizza il comando "in" parola chiave per controllare una chiave
  • Usa un blocco try‚Ķeccetto.

La soluzione per gestire il KeyError che funziona meglio per te varierà a seconda del tuo caso d’uso.

Usa il metodo get() del dizionario

Il metodo get() del dizionario Python restituisce un valore in un dizionario. Puoi specificare un valore predefinito con il metodo get(). Questo valore predefinito viene restituito se il nome della chiave che hai specificato non ha un valore.

Considera il seguente codice:

Eseguiamo il nostro codice utilizzando l’interprete Python e vediamo cosa succede:

Il nostro codice utilizza il metodo get() del dizionario per recuperare "ALU" dal nostro dizionario. Nessun valore corrisponde a questo nome di chiave. Il metodo get() restituisce il valore predefinito che abbiamo specificato, che è "non disponibile" .

Verifica la presenza di una chiave in anticipo utilizzando l’indicizzazione

Puoi verificare l’esistenza di una chiave utilizzando l’indicizzazione per evitare di incontrare un KeyError. Se una chiave è in un dizionario, puoi usare quella chiave. Altrimenti, puoi istruire il tuo programma a fare qualcos’altro che non dipenda da quella chiave.

Scriviamo un programma che acceda alle chiavi nel nostro "raspberry_pi" dizionario in Python. Controlliamo se la nostra chiave è nel nostro dizionario utilizzando l’indicizzazione:

Abbiamo usato un Python "if" istruzione per verificare se la nostra chiave esiste. "raspberry_pi[get_key]" restituirà un valore solo se la chiave esiste. Ciò significa che se la nostra chiave esiste, il nostro "if" l’istruzione verrà eseguita. Se la nostra chiave non esiste, l’opzione "else" l’istruzione verrà eseguita.

Proviamo a scoprire la RAM per il nostro Raspberry Pi:

Ora, proviamo a scoprire quante porte USB ha il computer:

Il nostro codice non genera un KeyError! Questo perché abbiamo verificato se la nostra chiave esiste prima di utilizzarla. Se avessimo usato raspberry_pi[get_key] all’interno del nostro "else" istruzione, il nostro codice restituirebbe un KeyError.

Usando un blocco try…eccetto

Un Python try‚Ķeccetto blocco cercherà di eseguire una riga di codice. Se quella riga di codice non può essere eseguita, il nostro codice genererà un errore personalizzato in base alle eccezioni che hai indicato.

Possiamo usare un blocco try‚Ķeccetto per determinare l’esistenza di un errore e impedisci a un KeyError inaspettato di aiutare il nostro programma Python.

Definiamo un errore personalizzato per il nostro esempio di computer di prima usando un blocco try…eccetto:

"Carriera Karma è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinare un bootcamp. Due mesi dopo la laurea, ho trovato il lavoro dei miei sogni in linea con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

Utilizziamo un blocco try…eccetto per provare a stampare sulla console una particolare informazione sul computer Raspberry Pi. Se il nostro codice genera un KeyError in qualsiasi punto del blocco "try, il nostro codice esegue il contenuto del "tranne" block.

Ciò significa che ogni volta che viene generato un KeyError, "Questa informazione non è disponibile" viene stampata sulla console. Proviamo a scoprire il nome del computer :

Ora, proviamo a conoscere la disponibilità della porta USB del computer:

Il nostro codice genera un KeyError all’interno del nostro "try" bloccare. Questo fa si che il nostro codice esegua il comando "eccetto" blocco di codice.

Controlla in anticipo la presenza di una chiave utilizzando in

Il blocco "in" la parola chiave è uno degli operatori di appartenenza di Python. Controlla se un elemento è in un elenco di valori. Puoi utilizzare il comando "in" parola chiave per verificare se una chiave è all’interno di un dizionario.

Questo programma verificherà se esiste una chiave prima di stamparne il valore sulla console:

Questo codice verificherà se il valore di "get_key" è una chiave all’interno del dizionario "raspberry_pi". Se la chiave esiste, verrà eseguita l’istruzione "if" . Altrimenti, verrà eseguita l’istruzione "else". Proviamo a controllare le informazioni sulla CPU del computer:

Controlliamo il nome del computer:

Il nostro codice funziona! Quando cerchiamo una chiave che non esiste, il comando "else" l’istruzione viene eseguita. Ciò significa che nessun KeyError può essere generato nel nostro codice perché non tentiamo di accedere a una chiave in "else" blocco.

Il nostro codice funziona! Quando cerchiamo una chiave che non esiste, il comando "else" l’istruzione viene eseguita. Ciò significa che nessun KeyError può essere generato nel nostro codice perché non tentiamo di accedere a una chiave in "else" blocco.

Conclusione

Un KeyError viene generato quando si tenta di accedere a un valore da un dizionario che non esiste. Per risolvere un errore di chiave, puoi verificare la presenza di una chiave in anticipo prima di utilizzarla e utilizzarla solo se la chiave esiste. Puoi usare un blocco try…eccetto per gestire un errore di chiave.

Per consigli su come imparare il linguaggio di programmazione Python, dai un’occhiata al nostro completo Guida all’apprendimento di Python. In questa guida troverai collegamenti alle principali risorse di apprendimento, libri e corsi.

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