本文摘自php中文网,作者零下一度,侵删。
一、用途
我们需要将内存中的数据进行序列化,即写入文件中时,写入的类型只能是字符串或者二进制类型。但是如果我们想要将复杂一些的数据类型,如:列表、字典或者函数之类的同样进行序列化,我们就要用到 json或者pickle。
二、json序列化
1、dumps序列化和loads反序列化
dumps把数据类型转换成字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
loads把字符串转换成数据类型
1 2 3 4 5 6 7 8 9 10 11 |
|
2.dump序列化和load反序列化
dump把数据类型转换成字符串并存储在文件中
1 2 3 4 5 6 7 8 9 10 11 12 |
|
load把文件打开从字符串转换成数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
3.json序列化一个函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
1、json只能处理简单的数据类型,例如:字典、列表、字符串等,不能处理函数等复杂的数据类型。
2、json是所有语言通用的,所有语言都支持json,如果我们需要python跟其他语言进行数据交互,那么就用json格式
三、pickle序列化
pickle的用法和上面的相同,但是pickle序列化后的数据类型是二进制的,并且pickle只能在python中是使用。
1.dumps && loads
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
1 2 3 4 5 6 7 8 9 |
|
2. dump && load
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
1 2 3 4 5 6 7 8 9 |
|
总结:
json值支持简单的数据类型,pickle支持所有的数据类型。
pickle只能支持python本身的序列化和反序列化,不能用作和其他语言做数据交互,而json可以。
pickle序列化的是整个的数据对象,所以反序列化函数时,函数体中的逻辑变了,是跟着心的函数体走的。
以上就是内存中数据序列化实例的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。