225

私のpythonプログラムでは、次のエラーが発生しています:

KeyError: 'variablename'

このコードから:

path = meta_entry['path'].strip('/'),

なぜこれが起こっているのか誰でも説明できますか?

4

8 に答える 8

303

AKeyErrorは通常、キーが存在しないことを意味します。それで、pathキーが存在することは確かですか?

公式のpythonドキュメントから:

例外 KeyError

既存のキーのセットにマッピング (辞書) キーが見つからない場合に発生します。

例えば:

>>> mydict = {'a':'1','b':'2'}
>>> mydict['a']
'1'
>>> mydict['c']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'c'
>>>

そのため、の内容を印刷して、存在するmeta_entryかどうかを確認してくださいpath

>>> mydict = {'a':'1','b':'2'}
>>> print mydict
{'a': '1', 'b': '2'}

または、次のことができます。

>>> 'a' in mydict
True
>>> 'c' in mydict
False
于 2012-04-12T02:15:05.147 に答える
144

キー エラー コメントに完全に同意します。辞書の get()メソッドを使用して、例外を回避することもできます。Noneこれは、以下に示すのではなく、デフォルト パスを指定するためにも使用できます。

>>> d = {"a":1, "b":2}
>>> x = d.get("A",None)
>>> print x
None
于 2012-04-12T02:20:09.433 に答える
5

はい、存在しないキーが原因である可能性があります。

私のプログラムでは、効率を考慮して、setdefaultを使用してこのエラーをミュートしました。このラインの効率に応じて

>>>'a' in mydict.keys()  

私もPythonを初めて使用します。実際、私は今日それを学んだばかりです。だから、効率の無知について私を許してください。

Python 3では、この関数を使用することもできます。

get(key[, default]) [function doc][1]

キーエラーは発生しないと言われています。

于 2013-01-10T21:44:04.517 に答える