当前位置: 首页 > 知识库问答 >
问题:

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

司寇凯
2023-03-14

我在本地服务器中保存了一个json文件,例如:

    {
      "user": "user1",
      "id": "21779"
    } 

我想在这个json文件中写入另一个dict,我需要这样的新内容:

    {
       {
         "user": "user1",
         "id": "21779"
       },
       {
         "user": "user2",
         "id": "21780"
       }
     }

或:

     [
       {
         "user": "user1",
         "id": "21779"
       },
       {
         "user": "user2",
         "id": "21780"
       }
     ]

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

    {
      "user": "user1",
      "id": "21779"
    }
    {
      "user": "user2",
      "id": "21780"
    }

它不是有效的json文件。

如何使用json。转储,json。加载或其他方法?谢谢你的帮助!

共有2个答案

潘学民
2023-03-14

您可以使用列表而不是判决,如果有帮助,请尝试以下一种解决方案

import json

def appendList():
    with open("test.json", mode='r', encoding='utf-8') as f:
        feeds = json.load(f)
        print(feeds)

    with open("test.json", mode='w', encoding='utf-8') as feedsjson:
        entry = { "user": "user3","id": "21574"}
        feeds.append(entry)
        print(json.dump(feeds, feedsjson))
壤驷德宇
2023-03-14

您必须读取JSON文件,然后将其转换为列表,而不是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)
 类似资料:
  • 问题内容: Swift中的数组支持+ =运算符,可将一个数组的内容添加到另一个数组。有没有简单的方法可以做到这一点的字典? 例如: 问题答案: 您可以为定义运算符,例如

  • 我想将废弃的数据转储到json文件中。我相信它的格式已经很好了(dictionary、list、string等)。我如何输出到json文件中?

  • 以及如何将指令保存为相同格式的文本文件?

  • 问题内容: 我想将一个项目添加到Python中的现有字典中。例如,这是我的字典: 我想添加一个新项目,例如: 我该如何实现? 问题答案: default_data[‘item3’] = 3 像py一样容易。 另一个可能的解决方案: 如果您想一次插入多个项目,这很好。

  • 问题内容: 什么更快: (A)使用以下方法“取消腌制”(加载)腌制的字典对象 要么 (B)使用以下命令将JSON文件加载到字典中 假定:案例A中已经存在腌制的对象文件,案例B中已经存在JSON文件。 问题答案: 速度实际上取决于数据,内容和大小。 但是,无论如何,让我们以json数据为例,看看什么更快(Ubuntu 12.04,python 2.7.3): pickle cPickle json

  • 问题内容: 创建密钥后,是否可以向Python字典添加密钥?它似乎没有方法。 问题答案: