Un utente ha chiesto (Keyerror while using pandas in PYTHON 2.7) perché aveva uno KeyError
mentre cercava un dizionario e come poteva evitare questa eccezione.Sto usando `all` correttamente?
Come risposta, gli ho suggerito di verificare prima le chiavi nel dizionario. Quindi, se aveva bisogno di tutte le chiavi ['key_a', 'key_b', 'key_c']
nel dictionary
, avrebbe potuto testarlo con:
if not all([x in dictionary for x in ['key_a', 'key_b', 'key_c']]):
continue
In questo modo ha potuto ignorare dizionari che non avevano le chiavi attesi (l'elenco dei dizionari è creato dal JSON linee formattate caricate da un file). * Fare riferimento alla domanda originale per ulteriori dettagli, se pertinente a questa domanda.
Un utente più esperto in Python e SO, che vorrei prendere in considerazione un'autorità in materia per i suoi carriera e oro distintivi mi ha detto che stavo usando all
in modo non corretto. Mi stavo chiedendo se questo è davvero il caso (per quello che posso dire, che funziona come previsto) e perché, o se c'è un modo migliore per verificare se un paio di chiavi sono tutte in un dizionario.
Proprio come una parte alla tua domanda qui, ma se sei preoccupato se una chiave è in un dizionario prima di provare a ottenere il suo valore puoi sempre chiamare il metodo 'get()' sul ditt. Quindi 'dict.get ('key', None)' restituirà il valore di 'key' o' None', dove 'dict [' key '] 'potrebbe generare un KeyError. – Jkdc