Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我做错了吗?_Python_Json - Fatal编程技术网

Python 我做错了吗?

Python 我做错了吗?,python,json,Python,Json,我刚刚开始学习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_userna

我刚刚开始学习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()
当我被要求输入用户和pass,并且输入与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!")

根据您的代码,您应该首先使用将数据加载到python字典中:

以open(“data.json”,“r”)作为数据的
:
login=json.loads(data.read())
#那么你可以这样使用它
如果登录名=login['username']和登录名=login['password']:
... 代码的其余部分

您的登录只适用于最后一个注册用户,您应该解决这一问题。

能否显示您的JSON文件欢迎访问SO@jobin-raj-s。看看如何提问->。你想达到什么目的,您面临什么问题?用户名和密码从何而来?@skaul05 json文件是一个空文件,只要我们在其中输入值,它就会存储数据。@AndyK正如我所说的,它是一个通过终端的基本登录系统,我想输入User和pass的值,并将其存储到json通过从JSON文件中检索值并对其进行验证来创建和登录。目前输入部分工作正常,但登录部分工作不正常,即使我输入了同一个用户并传递了它,它仍然会循环并要求我们重试。它是否能够检查整个JSON文件以查看用户是否已注册?我将检查它是否打开(“data.json”,“w”),每次我看到它时,您都会覆盖它。所以我不必覆盖,只需将存储的数据添加到json文件中,对吗?您需要查看json数组和python列表以了解that@andyK好了,伙计,已经有了。对StackOverflow来说有点陌生,所以我真的不知道该做什么,但是谢谢你的帮助:D干杯