写入.json文件

问题描述 投票:0回答:2

我目前正在尝试将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文件中。

json append
2个回答
0
投票

尝试使用'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})

0
投票

也许这是对该问题的误解,但据我所知,正在发生的事情是您使用json.load,它似乎加载了objectliteral ({key1: value1, key2: value2,...})而不是数组文字 ([value1, value2, ...])。 Python将第一个转换为python字典,而字典没有添加函数,只有数组/列表具有。您遇到错误并暂停执行。当您将logins.json的内容作为对象{...}时,它对我不起作用,但作为数组/列表[...]时它起作用

© www.soinside.com 2019 - 2024. All rights reserved.