簡體   English   中英

Python dict.get()引發了KeyError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM