python中json序列化的详细分析


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于python中json序列化的详细分析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

之所以写这个因为自己总是弄混了,容易弄错,记下来有事没事看看

序列化是指把变量从内存中变成可存储或传输的过程称之为序列化用(使用dump或者dumps),把变量内容从序列化的对象重新读到

内存里称之为反序列化(使用load或者loads)

如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON

表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,

而且可以直接在Web页面中读取,非常方便

JSON和Python内置的数据类型对应如下:

dumps()方法返回一个str,内容就是标准的JSON。类似的,dump()方法可以直接把JSON写入一个file_Object。要把JSON反序列化为

Python对象,用loads()或者对应的load()方法,前者把JSON的字符串反序列化,后者从file_Object中读取字符串并反序列化

实例

dumps序列化一个对象

1

2

3

data= { "广州市": { "番禺区": ["南村镇", "大石镇", "榄核镇"], "天河区": ["广州塔", "中信广场", "天河又一城"] } }

s = json.dumps(data, sort_keys=True, indent=4, ensure_ascii=False)

print(s)

#dumps:序列化一个对象 sort_keys:根据key排序 indent:以4个空格缩进,输出阅读友好型 ensure_ascii: 可以序列化非ascii码(中文等)

dump:将一个对象序列化存入文件

dump()的第一个参数是要序列化的对象,第二个参数是打开的文件句柄 注意打开文件时加上以UTF-8编码打开

1

2

with open("data.json", "w", encoding="UTF-8") as f:

    s = json.dump(data, f, ensure_ascii=False)

运行此文件之后在统计目录下会有一个data.json文件

反序列化

load:从一个打开的文件句柄加载数据,注意打开的文件编码

1

2

3

with open("data.json", "r", encoding="UTF-8") as f:

    r = json.load(f)

    print(r)

loads: 从一个对象加载数据

1

2

a = json.loads(data)

print(a)

不加ensure_ascii=False 结果是

加入ensure_ascii=False

1

2

a = json.loads(data,ensure_ascii=False)  要注意

print(a)

1

2

a=json.loads(input("请输入添加的数据:"),enconding='utf-8')

print(a)

以上就是python中json序列化的详细分析的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python实现的求解最大公约数算法示例

新手Python用什么版本好?

Python大神用的9个实用技巧分享给你

Python数据分析师需要学什么

Python绘制直方图及子图的方法分析(代码示例)

Python基础学习需要掌握哪些知识

如何在线运行Python

Python脚本如何将excel文件转为csv文件(代码)

Python人工智能需要学什么

pandas数据处理实例展示:全球上市公司数据整理

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...