回答:
Aは、KeyError
一般的にキーが存在しないことを意味します。では、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
path = meta_entry['path'].strip('/'),
は、コードまたはエンジンの一部です。それがエンジンの一部である場合、私は何もできないことを恐れています。
print meta_entry
するだけで、それが含まれているpath
かどうかを確認します。
はい、おそらく存在しないキーが原因です。
私のプログラムでは、効率性を考慮して、setdefaultを使用してこのエラーをミュートしました。このラインの効率に応じて
>>>'a' in mydict.keys()
私はPythonも初めてです。実際、私は今日それを学びました。効率の無知を許してください。
Python 3では、この関数を使用することもできます。
get(key[, default]) [function doc][1]
キーエラーは発生しないと言われています。
これは、配列に探しているキーがないことを意味します。存在する場合は値を返すか、代わりにデフォルト値を返す関数でこれを処理します。
def keyCheck(key, arr, default):
if key in arr.keys():
return arr[key]
else:
return default
myarray = {'key1':1, 'key2':2}
print keyCheck('key1', myarray, '#default')
print keyCheck('key2', myarray, '#default')
print keyCheck('key3', myarray, '#default')
出力:
1
2
#default
dict
入れ子で解析しているときにこのエラーを受け取りましたfor
:
cats = {'Tom': {'color': 'white', 'weight': 8}, 'Klakier': {'color': 'black', 'weight': 10}}
cat_attr = {}
for cat in cats:
for attr in cat:
print(cats[cat][attr])
トレースバック:
Traceback (most recent call last):
File "<input>", line 3, in <module>
KeyError: 'K'
2番目のループではcats[cat]
代わりに単にcat
(何が単なるキーであるあります)
そう:
cats = {'Tom': {'color': 'white', 'weight': 8}, 'Klakier': {'color': 'black', 'weight': 10}}
cat_attr = {}
for cat in cats:
for attr in cats[cat]:
print(cats[cat][attr])
与える
black
10
white
8
たとえば、これが数値の場合:
ouloulou={
1:US,
2:BR,
3:FR
}
ouloulou[1]()
それは完璧に仕事だ、しかし、 あなたは、たとえば使用する場合:
ouloulou[input("select 1 2 or 3"]()
入力が文字列 '1'を返すため、機能しません。だからあなたはint()を使う必要があります
ouloulou[int(input("select 1 2 or 3"))]()
Python 3を使用している場合は簡単にしましょう
mydict = {'a':'apple','b':'boy','c':'cat'}
check = 'c' in mydict
if check:
print('c key is present')
他に条件が必要な場合
mydict = {'a':'apple','b':'boy','c':'cat'}
if 'c' in mydict:
print('key present')
else:
print('key not found')
動的キー値の場合、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'}
Key error
一般的にはkey
存在しないことを意味します。では、「パス」が存在することを確認しますか?