如何使用字典将新字典添加到现有的json文件中?

Dai*_*Hsu 2 python json dictionary list

我有一个保存在本地服务器中的json文件,例如?

    {
      "user": "user1",
      "id": "21779"
    } 
Run Code Online (Sandbox Code Playgroud)

我想将另一个字典写入此json文件,我需要像这样的新内容:

    {
       {
         "user": "user1",
         "id": "21779"
       },
       {
         "user": "user2",
         "id": "21780"
       }
     }
Run Code Online (Sandbox Code Playgroud)

要么:

     [
       {
         "user": "user1",
         "id": "21779"
       },
       {
         "user": "user2",
         "id": "21780"
       }
     ]
Run Code Online (Sandbox Code Playgroud)

我尝试使用json.dump()添加新元素,但显示为:

    {
      "user": "user1",
      "id": "21779"
    }
    {
      "user": "user2",
      "id": "21780"
    }
Run Code Online (Sandbox Code Playgroud)

这不是有效的json文件。

如何使用json.dump,json.load或其他方法?谢谢帮我!

Vip*_*mar 5

您必须先阅读JSON文件,然后将其转换为list而不是dict。然后,您只需要追加到该列表并覆盖JSON文件即可。

import json

data = json.load(open('data.json'))

# convert data to list if not
if type(data) is dict:
    data = [data]

# append new item to data lit
data.append({
  "user": "user2",
  "id": "21780"
})

# write list to file
with open('data.json', 'w') as outfile:
    json.dump(data, outfile)
Run Code Online (Sandbox Code Playgroud)