我刚刚开始学习Python编程知识,我正在尝试制作一个使用终端并将数据存储到JSON文件中并检索它以登录的登录系统。
这是引起问题的外观。
def login():
login_username = input("Enter your username: ")
login_password = input("Enter your pass: ")
with open("data.json", 'r+') as data:
if login_username == username and login_password == password:
print("Successful Login")
else:
print("Please Try Again")
login()
当系统要求我输入用户名和密码,并且输入内容与JSON中的数据匹配时,它将循环并要求输入用户名和密码。
我的整个代码在下面
import json
uname = ""
password =""
def register():
uname = input("Enter a user to log in with: ")
password = input("Enter a password: ")
confirmed_pass = input("Enter the above password again")
if password != confirmed_pass:
print("Both the passwords does not match please re-enter a pass")
password = input("Enter a password:")
confirmed_pass = input("Enter the above password again")
login_info = {
"Username": uname,
"Password": password
}
with open("data.json", "w") as write_file:
json.dump(login_info, write_file, separators=(',', ':'))
log = input("Would you like to login? (Y/N)")
if log == 'Y' or log == "y":
login()
else:
quit()
def login():
login_uname = input("Enter your username: ")
login_password = input("Enter your pass: ")
with open("data.json", 'r') as data:
if login_uname == uname and login_password == password:
print("Successful Login")
else:
print("Please Try Again")
login()
reg = input("Have you registered (Y/N) ?: ")
if reg == 'Y' or reg == 'y':
login()
elif reg == 'N' or reg == 'n':
register()
else:
print("Error!")
答案 0 :(得分:1)
根据您的代码,您应该首先使用json.loads将数据加载到python字典中:
with open("data.json", 'r') as data:
login = json.loads(data.read())
# then you can use it like this
if login_username == login['Username'] and login_password == login['Password']:
... Rest of the code
请稍等,您的登录名仅对最后注册的用户有效,您应该解决此问题。