[英]Compare user input to an existing dictionary in Python3 and keep getting KeyError
我正在嘗試將用戶輸入與現有字典進行比較,並不斷獲取價值錯誤。 我已經反復搜索並更改了代碼,但始終收到相同類型的錯誤。 關於如何解決這個問題的任何想法。 我只想驗證字典中是否存在用戶名和密碼。 我得到的錯誤:
如果NAME == users [NAME]和PASSWORD == users [PASSWORD],則登錄時文件“ C:\\ Users \\ jeff \\ Desktop \\ JAMGR \\ jeff \\ theCards.py”(第262行):KeyError:'jeff001'
def login(entUsername, entPassword):
NAME = entUsername.get()
PASSWORD = entPassword.get()
#print(NAME, PASSWORD) this was to test the stored values (actually works)
userList()
if NAME == users[NAME] and PASSWORD == users[PASSWORD]:
cardCreator()
else:
existingUser()
'''Checks their credentials against the ones we have in the data base'''
檢查字典,並確保您的字典奠定了,因為它被認為是...如果我使用你的應用程序,這正是你的字典應該怎么樣子:
users = {
"Viraj": "Viraj",
"myPassword": "myPassword"
}
請注意字典key
和value
如何相同,這可能是問題!
我相信您正在錯誤地檢查字典。 假設您的字典看起來像這樣。 您不能通過使用值(通過簡單的操作)來獲取鍵,因為字典不是這樣設計的。 您想要做的是。
d = {'username': 'password'}
NAME = 'username'
PASSWORD = 'password'
if PASSWORD == d.get(NAME):
# Correct ...
else:
# incorrect ...
我將d.get(NAME)
用於d[NAME]
因為如果字典中不存在與給定內容相匹配的鍵,則會出現錯誤。 但是,如果找不到匹配的值,則dict.get()
返回None
,這將導致if語句的結果為False。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.