脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - python向json中追加数据的两种方法总结

python向json中追加数据的两种方法总结

2022-12-25 14:31秃头才能变得更强 Python

JSON用来存储和交换文本信息,比xml更小/更快/更易解析,下面这篇文章主要给大家介绍了关于python向json中追加数据的两种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

json以其轻量级的数据交换格式,且易于阅读和编写而使用率很广泛,而使用json的过程中时而需要增加字段,本人验证两种方式之后将其集成梳理。

具体操作详情如下:

1. list dump (不推荐)

采用list方式,向json中添加字段。此法存在一定的问题,不推荐使用。

方法如下:

(1)先创建一个列表;

?
1
json_content = []

(2)将当前json文件中已有的内容读入列表中;

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
with open(fjson, 'r') as f:
    content = json.load(f)
    # 读取所有字段
    version = content["version"]
    flags = content["flags"]
    shapes = content["shapes"]
    imageData = content["imageData"]
    imagePath = content["imagePath"]
    imageHeight = content["imageHeight"]
    imageWidth = content["imageWidth"]
 
    item_dict = {
        "version": version,
        "flags": flags,
        "shapes": shapes,
        "imageData": imageData,
        "imagePath": imagePath,
        "imageHeight": imageHeight,
        "imageWidth": imageWidth
    }
 
    json_content.append(item_dict) # 将读取的内容append到list中

(3)将新增的内容以字典形式添加至列表中;

?
1
2
axis = {"axis":[22,10,33]}
json_content.append(axis)

(4)使用json.dump()将该列表写回原文件;

?
1
2
with open(fjson, 'w') as f_new:
    json.dump(content, f_new)

问题:此方法采用dump list的方式追加内容,但是问题在于此法将json的dict对象转换成了list对象,会导致修改json格式,故而不推荐。

2. json update (推荐使用)

使用dict自带函数update,将字典dict对应的key/value更新到另一个dict中。

此法简单快捷,直接更新dict,而不需要将原始文件的key/value全部读取出来。

(1)读取原始json文件(与方式1相同)

?
1
2
with open(fjson, 'r') as f:
    content = json.load(f)

(2)更新字典dict

?
1
2
axis = {"axis":[22, 10, 11]}
content.update(axis)

(3)写入

?
1
2
with open(fjson, 'w') as f_new:
    json.dump(content, f_new)

很简单,三步搞定,简单方便快捷。

总结

到此这篇关于python向json中追加数据的两种方法的文章就介绍到这了,更多相关python向json追加数据内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_42483488/article/details/124144579

延伸 · 阅读

精彩推荐