json模块

json和pickle模块

序列化:

--把对象(变量)从内存中变成可存储或传输的过程称之为序列化

--在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening。

优点:

1.持久保存状态:

内存是无法永久保存数据的,当程序运行了一段时间,我们断电或者重启程序,内存中关于这个程序的之前一段时间的数据(有结构)都被清空了。
但是在断电或重启程序之前将程序当前内存中所有的数据都保存下来(保存到文件中),以便于下次程序执行能够从文件中载入之前的数据,然后继续执行,这就是序列化。

2.跨平台数据交互:

序列化时不仅可以把序列化后的内容写入磁盘,还可以通过网络传输到别的机器上,如果收发的双方约定好实用一种序列化的格式,那么便打破了平台/语言差异化带来的限制,实现了跨平台数据交互。
json数据类型和python数据类型对应关系表

Json类型	Python类型
{}	dict
[]	list
"string"	str
520.13	int或float
true/false	True/False
null	None
--json文件进行存入硬盘的是json类型数据
--不支持元组,集合,函数

json模块:

#数据在内存
json.dumps() --序列化
json.loads() --反序列化

#对文件操作
json.dump()
json.load()
序列化: python文件 ---》json串

注意:无论数据是怎样创建的,只要满足json格式(如果是字典,则字典内元素都是双引号),就可以json.loads出来,不一定非要dumps的数据才能loads

pickle模块

Pickle序列化和所有其他编程语言特有的序列化问题一样,它只能用于Python,

可以存储Python中的所有的数据类型,包括对象

#数据在内存
pickle.dumps() --序列化
pickle.loads() --反序列化

#对文件操作
pickle.dump()
pickle.load()
序列化: python文件 ---》plk文件
(注意:pickle模块需要使用二进制存储,即'wb'模式存储)
posted @ 2019-09-27 20:54  black__star  阅读(91)  评论(0编辑  收藏  举报