本文摘自php中文网,作者巴扎黑,侵删。
这是用于序列化的两个模块:? json: 用于字符串和python数据类型间进行转换
? pickle: 用于python特有的类型和python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
pickle用法
dumps可以将数据类型转换成序列化(只有python才认识)的字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | >>> import pickle
>>> data = { 'name' : 'python' , 'site' : 'pythontab.com' }
>>> pstr = pickle.dumps(data)
>>> print pstr
(dp0
S 'name'
p1
S 'python'
p2
sS 'site'
p3
S 'pythontab.com'
p4
s.
|
将数据转换成序列化字符串,并写入文件:
1 2 3 4 5 6 7 8 9 | import pickle
data = { 'name' : 'python' , 'site' : 'pythontab.com' }
with open ( 'dump.data' , 'wb' ) as f:
pickle.dump(data, f)
with open ( 'dump.data' , 'rb' ) as f:
data_load = pickle.load(f)
print data_load
|
结果:
1 | { 'name' : 'python' , 'site' : 'pythontab.com' }
|
文件中显示的内容与上面一致
json的用法
json的用法和pickle是一样的
1 2 3 4 | import json
data = { 'name' : 'python' , 'site' : 'pythontab.com' }
jstr = json.dumps(data)
print jstr, type (jstr)
|
结果:
1 | { "name" : "python" , "site" : "pythontab.com" } < type 'str' >
|
注意: 看起来好像是个字典,但要注意了,实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。
那pickle和json有什么区别呢?
json是可以在不同语言之间交换数据的,而pickle只在python之间使用。
json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。
以上就是比较Python序列化模块pickle和json不同的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
现在学Python能做什么?学完Python可以当黑客吗
Python是什么意思?怎么读?
Python同时对数据做转换和换算的方法介绍与分析(附实例)
flask 和 django 区别
浅谈Python字符串
关于Python中的range 对象是不是迭代器的探讨
r vs. Python数据分析详解
Python配置mysql的教程(必看)
Python实现购物车程序
Python的数据结构
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 比较Python序列化模块pickle和json不同