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