Python 正在将用作登录系统的内容写入.json文件,但不起作用

Python 正在将用作登录系统的内容写入.json文件,但不起作用,python,python-3.x,Python,Python 3.x,我正在为计算机gcse设置掷骰子游戏。我在向.json文件添加新用户时遇到一些问题。我是新的编码,并不是最伟大的,所以任何帮助将不胜感激!我希望它以{“username”:“password”} 我在这个论坛上四处查看,并尝试改变它打开文件的方式,例如a和w。我对所有的答案都感到困惑,无法将其与我的答案联系起来 path_to_json = "./logins.json" logins = json.load(open("logins.json", "a")) usern

我正在为计算机gcse设置掷骰子游戏。我在向.json文件添加新用户时遇到一些问题。我是新的编码,并不是最伟大的,所以任何帮助将不胜感激!我希望它以
{“username”:“password”}

我在这个论坛上四处查看,并尝试改变它打开文件的方式,例如
a
w
。我对所有的答案都感到困惑,无法将其与我的答案联系起来

    path_to_json = "./logins.json"
    logins = json.load(open("logins.json", "a"))
    username = (input('New Username: '))
    password = (input('New Password: '))

    logins = ['login'].append({username:password})

    with open('logins.json', 'a') as outfile:
        json.dump(logins)
我希望它会添加一个用户,但是我得到了错误:

回溯(最近一次调用):文件“”,第1行,在 new\u user()文件“N:\NEA Computing\NEA code.py”,第32行,在new\u user中 logins=json.load(打开(“logins.json”,“a”))文件“C:\Program Files\Python36\lib\json\uuuuuu init\uuuuuu.py”,第296行,装入 返回加载(fp.read(),io.UnsupportedOperation:不可读

我的计算机上的目录中有一个.json文件。

将“a”改为“r”,以便文件可读

logins=json.load(打开(“logins.json”、“r”))
将“a”改为“r”,以便文件可读

logins=json.load(打开(“logins.json”、“r”))

@kuco23解决了第一个问题,但还有其他几个问题。首先,在Python列表上使用
append()
时不必赋值。第二个问题是,
dump()
需要一个文件指针作为另一个参数

另外,我不知道为什么要使用append more进行编写,因为您已经在列表中添加了。我将其更改为写入模式

import json

path_to_json = "./logins.json"
with open("logins.json", "r") as content:
    logins = json.load(content)

username = input('New Username: ')
password = input('New Password: ')

logins.append({username: password})

with open("logins.json", "w") as outfile:
    json.dump(logins, outfile)
或者更接近OP所做的

import json

path_to_json = "./logins.json"
logins = json.load(open("logins.json", "r"))

username = input("New Username: ")
password = input("New Password: ")

logins.append({username: password})

json.dump(logins, open("logins.json", "w"))

@kuco23解决了第一个问题,但还有其他几个问题。首先,在Python列表上使用
append()
时不必赋值。第二个问题是,
dump()
需要一个文件指针作为另一个参数

另外,我不知道为什么要使用append more进行编写,因为您已经在列表中添加了。我将其更改为写入模式

import json

path_to_json = "./logins.json"
with open("logins.json", "r") as content:
    logins = json.load(content)

username = input('New Username: ')
password = input('New Password: ')

logins.append({username: password})

with open("logins.json", "w") as outfile:
    json.dump(logins, outfile)
或者更接近OP所做的

import json

path_to_json = "./logins.json"
logins = json.load(open("logins.json", "r"))

username = input("New Username: ")
password = input("New Password: ")

logins.append({username: password})

json.dump(logins, open("logins.json", "w"))


共享此文件
NEA code.py
您做了什么来调试此文件?您好,我不知道如何共享此文件。我是此网站的新手。我已搜索了一些错误代码并通过电子邮件发送给我哥哥,因为他在这一领域比我聪明得多。我已更改了文件的打开方式,例如r用于读取或a用于附加或w用于写入。您可以共享吗
json
文件格式?共享此文件
NEA code.py
你做了什么来调试此文件?您好,我不知道如何共享此文件。我是此网站的新手,我搜索了一些错误代码并通过电子邮件发送给我哥哥,因为他在这方面比我聪明得多。我已更改了文件的打开方式,例如r for read或a for append或w for Write您可以共享
json
文件格式吗?OP试图以
append
模式打开文件以读取,这是导致问题的原因。+1Hi,这有助于删除一些错误,但我有一个错误,说我是
NameError:name'fp'未定义
这是针对
json.dump(登录)行的
Write
json.dump(登录、输出文件)
作为
json.dump
接受第二个名为
fp
的参数,您没有提供该参数。op试图以
append
模式打开文件以读取,这是导致问题的原因。+1Hi,这有助于删除一些错误,但是我有一个错误,我说我是
name错误:未定义名称“fp”
这是f或者行
json.dump(logins)
Write
json.dump(logins,outfile)
as
json.dump
接受另一个名为
fp
的参数,你没有提供它。我是不是想把
内容
改成另一个变量或单词?这是新的,所以我有点困惑。从这张图上看,你用你的answer@Cflux
content
变量名不存在这里真的很重要。
with
只是我习惯使用的另一种用Python打开文件的安全方法。像你提到的那样打开文件也可以,只是别忘了使用正确的模式,即,
read
write
append
嗨,我是想把
内容
更改为另一个变量吗e或单词?这是新的,所以我有点困惑。从这张照片上看,你用你的手指击中了我的头answer@Cflux
content
变量名在这里并不重要。
with
只是另一种用Python打开文件的安全方法,我习惯使用这种方法。像您提到的那样打开文件也可以,只是不要或设置为使用正确模式,即
读取
写入
追加