我目前正在尝试将2个用户输入的代码段写入.json文件,而不清除现有数据。我认为这是logins.append的问题,因为它说没有问题。我要用什么?
我一直在努力寻找与登录名不同的后缀。
def i():
path_to_json = "./logins.json"
with open("logins.json", "r") as content:
logins = json.load(content)
with open('logins.json', 'a') as outfile:
username = str(input('New Username: '))
password = str(input('New Password: '))
logins.append({username:password})
我收到错误:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
i()
File "N:\NEA Computing\NEA code.py", line 188, in i
logins.append({username: password})
AttributeError: 'dict' object has no attribute 'append'
我期望它在不删除其他数据的情况下将数据添加到.json文件中,但是我遇到了错误,没有任何内容写入.json文件中。
尝试使用'w'选项打开文件
def i():
path_to_json = "./logins.json"
with open("logins.json", "w") as content:
logins = json.load(content)
with open('logins.json', 'a') as outfile:
username = str(input('New Username: '))
password = str(input('New Password: '))
logins.append({username:password})
也许这是对该问题的误解,但据我所知,正在发生的事情是您使用json.load,它似乎加载了objectliteral ({key1: value1, key2: value2,...})
而不是数组文字 ([value1, value2, ...])
。 Python将第一个转换为python字典,而字典没有添加函数,只有数组/列表具有。您遇到错误并暂停执行。当您将logins.json的内容作为对象{...}
时,它对我不起作用,但作为数组/列表[...]
时它起作用