![](/img/trans.png)
[英]Python dict.get() throwing KeyError when the key is there and valid
[英]Python dict.get() raises KeyError
我迷失在這里,Python 2.7,我有一個字典mt
,我使用get()
方法,文檔說:
get(key[, default])
如果key在字典中,則返回key的值,否則返回default。 如果未給出default,則默認為None,因此此方法永遠不會引發KeyError
。
但我還是得到了
File "/home/ubuntu/subscription-workers/commands/dr/rebilling.py", line 48, in rebill
if mt.get('is_rebill', 0) == 1:
KeyError: 'is_rebill'
有什么想法嗎?
mt
是普通的dict
,有時候沒有密鑰。
所以我把問題解決了。 在此代碼實施之前,有一個
File "/home/ubuntu/subscription-workers/commands/dr/rebilling.py", line 48, in rebill
if mt['is_rebill'] == 1:
KeyError: 'is_rebill'
問題是舊版本中有.pyc文件,但堆棧跟蹤正在加載實際代碼。 跑完之后
find . -name "*.pyc" -exec rm -rf {} \;
並重新加載應用程序一切都很好,沒有問題。
>>> mt = {'key1' : 1}
>>> mt.get('is_rebill', 0)
0
如果key不存在則不會生成密鑰錯誤,它返回0
>>> mt.update({'is_rebill':1})
>>> mt.get('is_rebill', 0)
1
>>> if mt.get('is_rebill', 0) == 1:
... print True
... else:
... print False
...
False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.