python keyerror
Funzioni e metodi Python
Michael Zippo
31.10.2021
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.
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!"
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 :
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.
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.