【问题标题】:Writing to a .json file写入 .json 文件
【发布时间】:2020-02-14 02:14:33
【问题描述】:

我目前正在尝试在不清除现有数据的情况下将 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


    【解决方案1】:

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

    【讨论】:

    • 这行不通,因为“w”会导致 .json 擦除文件的所有内容,但我不希望它这样做
    【解决方案2】:

    也许这是对问题的误解,但据我所知,正在发生的事情是您使用 json.load,它似乎加载了 object literal,如 {key1: value1, key2: value2,...}而不是像[value1, value2, ...] 这样的数组文字。 Python将第一个转换为python dict,字典没有附加功能,只有数组/列表有。你得到你的错误和执行停止。当您将 logins.json 的内容作为对象 {...} 时,它对我不起作用,但作为数组/列表 [...] 它起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-13
      • 2021-07-18
      • 2017-10-05
      • 1970-01-01
      • 2019-01-19
      • 2018-10-04
      • 1970-01-01
      相关资源
      最近更新 更多