社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用Python扩展JSON文件

Cal Blau • 5 年前 • 1898 次点击  

我在stackoverflow上查找了我的问题,有几种解决方法对我的问题不起作用。
我想在json文件中添加一些新条目。

我的json文件(data.json):

{
        "blabla1":"dubdub1",
        "blabla2":"dubdub2"
}

我的代码(使用 延伸 方法):

import json

with open('data.json') as json_data_file:
    data = json.load(json_data_file)
result = list()

result.extend(data)
result.extend({'blabla3': 'dubdub3'})
data = result

print(data)

这给了我一个输出如下:

['blabla1', 'blabla2', 'blabla3']

我的代码(使用 追加 方法):

import json

with open('data.json') as json_data_file:
    data = json.load(json_data_file)
result = list()

result.append(data)
result.append({'blabla3': 'dubdub3'})
data = result

print(data)

这给了我一个输出如下:

[{'blabla1': 'dubdub1', 'blabla2': 'dubdub2'}, {'blabla3': 'dubdub3'}]

最后我需要的是:

[{'blabla1': 'dubdub1', 'blabla2': 'dubdub2', 'blabla3': 'dubdub3'}]

那我错在哪里呢?如果同样的问题已经被回答了,我很抱歉,但是我找不到对我有用的东西。谢谢您!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52050
 
1898 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Matan Zohar
Reply   •   1 楼
Matan Zohar    5 年前

在不改变代码的情况下,您可以像这样实现最初的请求:

import json

with open('data.json') as json_data_file:
    data = json.load(json_data_file)

data.update({'blabla3': 'dubdub3'})
result = [data]

print(result)

这将产生您预期的结果:

[{'blabla1': 'dubdub1', 'blabla2': 'dubdub2', 'blabla3': 'dubdub3'}]


简要说明:

方法 json.load文件 你调用了created a dictionary对象 数据 看起来是这样的:

{'blabla1': 'dubdub1', 'blabla2': 'dubdub2'}

然后打电话 result.append(数据) 你添加了 数据 字典作为列表对象中的第一个公民 结果 :

[{'blabla1': 'dubdub1', 'blabla2': 'dubdub2'}]

每隔一次你打电话给 附加() 方法您只需将另一个成员添加到列表中:

[{'blabla1': 'dubdub1', 'blabla2': 'dubdub2'}, obj2, obj3, ...]

相反,您似乎希望向数据字典中添加另一个键值对,如 previous answer

Iain Shelvington
Reply   •   2 楼
Iain Shelvington    5 年前

这更接近你想要的吗?用新的键和值更新的字典

import json

with open('data.json') as json_data_file:
    data = json.load(json_data_file)
data['blabla3'] = 'dubdub3'
print(data)  # {'blabla1': 'dubdub1', 'blabla2': 'dubdub2', 'blabla3': 'dubdub3'}

编辑:

要同时更新多个条目,可以使用 update

data.update({
    'blabla3': 'dubdub3',
    'blabla4': 'dubdub4',
})