Dans mon programme python, j'obtiens cette erreur :
KeyError: 'variablename'
De ce code :
path = meta_entry['path'].strip('/'),
Quelqu'un peut-il expliquer pourquoi cela se produit ?
Dans mon programme python, j'obtiens cette erreur :
KeyError: 'variablename'
De ce code :
path = meta_entry['path'].strip('/'),
Quelqu'un peut-il expliquer pourquoi cela se produit ?
A KeyError
signifie généralement que la clé n'existe pas. Donc, vous êtes sûr que la path
existe ?
Extrait de la documentation officielle de Python :
exception KeyError
Lancé lorsqu'une clé de mappage (dictionnaire) n'est pas trouvée dans l'ensemble des clés existantes. clés existantes.
Par exemple :
>>> mydict = {'a':'1','b':'2'}
>>> mydict['a']
'1'
>>> mydict['c']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'
>>>
Essayez donc d'imprimer le contenu de meta_entry
et vérifier si path
existe ou non.
>>> mydict = {'a':'1','b':'2'}
>>> print mydict
{'a': '1', 'b': '2'}
Ou, vous pouvez le faire :
>>> 'a' in mydict
True
>>> 'c' in mydict
False
Je suis tout à fait d'accord avec les commentaires sur les erreurs clés. Vous pourriez également utiliser le get() du dictionnaire pour éviter les exceptions. Ceci pourrait également être utilisé pour donner un chemin par défaut plutôt que None
comme indiqué ci-dessous.
>>> d = {"a":1, "b":2}
>>> x = d.get("A",None)
>>> print x
None
Oui, il est très probablement causé par une clé inexistante.
Dans mon programme, j'ai utilisé setdefault pour couper cette erreur, par souci d'efficacité. selon l'efficacité de cette ligne
>>>'a' in mydict.keys()
Je suis également novice en matière de Python. En fait, je viens de l'apprendre aujourd'hui. Pardonnez-moi donc mon ignorance en matière d'efficacité.
En Python 3, vous pouvez également utiliser cette fonction,
get(key[, default]) [function doc][1]
Il est dit qu'il ne soulèvera jamais une erreur de clé.
Simplifions les choses si vous utilisez Python 3.
mydict = {'a':'apple','b':'boy','c':'cat'}
check = 'c' in mydict
if check:
print('c key is present')
Si vous avez besoin d'une autre condition
mydict = {'a':'apple','b':'boy','c':'cat'}
if 'c' in mydict:
print('key present')
else:
print('key not found')
Pour la valeur de la clé dynamique, vous pouvez également gérer le bloc try-exception.
mydict = {'a':'apple','b':'boy','c':'cat'}
try:
print(mydict['c'])
except KeyError:
print('key value not found')mydict = {'a':'apple','b':'boy','c':'cat'}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.