Ciao Giacomo,
Il tipo di eccezione che ti viene generata è dipesa dal fatto che stai chiedendo al dizionario di prendere un valore rispetto ad una chiave non esistente in esso.
Posso consigliarti per risolverlo di usare il metodo get() del dizionario che ti permette di ritornare un valore a tua scelta il caso quella chiave non esistesse.
Es.
valore = diz.get(chiave, "valore da ritornare se non esistesse")
Altrimenti potresti usare il modulo try/except per gestire tale eccezione ma con la prima soluzione a mio parere il codice risulterà piu ordinato.
Spero di essere stato chiaro e di aiuto :D