本文摘自php中文网,作者黄舟,侵删。
下面小编就为大家带来一篇简单谈谈Python中的json与pickle。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧这是用于序列化的两个模块:
? json: 用于字符串和python数据类型间进行转换
? pickle: 用于python特有的类型和python的数据类型间进行转换
Json 模块提供了四个功能:dumps、dump、loads、load
pickle 模块提供了四个功能:dumps、dump、loads、load
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import pickle
data = { 'k1' : 123 , 'k2' : 888 }
#dumps可以将数据类型转换成只有python才认识的字符串
p_str = pickle.dumps(data)
print p_str
输出结果:
(dp0
S 'k2'
p1
I888
sS 'k1'
p2
I123
s.
|
将数据转换成只有Python认识的字符串,并写入文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 | import pickle
data = { 'k1' : 123 , 'k2' : 888 }
#打开文件,然后将data写入
with open( 'data.pkl' , 'wb' ) as f:
pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open( 'data.pkl' , 'rb' ) as f:
data_1 = pickle.load(f)
print data_1
结果:
{ 'k2' : 888 , 'k1' : 123 }
文件中显示的内容与上面一致
|
json的用法和pickle是一样的
1 2 3 4 5 6 | import json
data = { 'k1' : 123 , 'k2' : 888 }
p_str = json.dumps(data)
print p_str, type(p_str)
结果:
{ "k2" : 123 , "k1" : 888 } <type 'str' >
|
看起来好像是个字典,但要注意了,实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。
1 2 3 4 5 6 7 8 9 10 11 | import json
data = { 'k1' : 123 , 'k2' : 123 }
#打开文件,然后将data写入
with open( 'data.pkl' , 'w' ) as f:
json.dump(data, f)
#同样读取的时候也需要打开文件
with open( 'data.pkl' , 'r' ) as f:
data_1 = json.load(f)
print(data_1, type(data_1))
结果:
({u 'k2' : 123 , u 'k1' : 123 }, <type 'dict' >)
|
能够读取出来,而且类型也是正确的。
那pickle和json有什么区别呢?
在上面两段代码中,pickle写入和读取文件时,用的是 ‘b'模式,而json没有。
json是可以在不同语言之间交换数据的,而pickle只在python之间使用。
json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。
以上就是Python中关于json与pickle简单介绍的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python数据分析师需要学什么
mapreduce是干嘛的,三分钟了解mapreduce运行原理
Python处理gif动态图的解析与合成操作的介绍
Python文件打开的访问模式有哪些?
Python3如何使用pil
Python中udp套接字通信的简单解析(附代码)
Python析构函数与构造函数的用法讲解
Python怎么安装gdal
Python如何把列表变字典
Python数据分析要学什么数学
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python中关于json与pickle简单介绍