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

我保存在本地服务器中的JSON文件,如:如何用字典将新字典添加到已有的json文件中?

{ 

"user": "user1",

"id": "21779"

}

,我要再写词典到这个JSON文件,我需要新的内容是这样的:

{ 

{

"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.dump,json.load或其他方法? 谢谢你的帮助!

回答:

您必须先阅读您的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)

回答:

您可以用列表不与字典做,试试下面的一个解决方案,如果它的帮助

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))

以上是 如何用字典将新字典添加到已有的json文件中? 的全部内容, 来源链接: utcz.com/qa/261937.html

回到顶部