首页 > Web开发 > 详细

pickle,json序列化

时间:2017-01-16 23:20:42      阅读:318      评论:0      收藏:0      [点我收藏+]

序列化:

把对象 转化为 str或者bytes

反序列化:

str或者bytes转化为对象

picklepython所特有的序列化工具,可以序列化所有的东西包括函数,类,数据类型等,序列化后是字节或者二进制文件

json是所有语言都支持的,只支持序列化常规的数据类型,序列化后是可视化的,跟原来的内容是一样的,可视化性更强

pickle:

dumps:序列化后直接返回字符串或者bytes(字节)

dump:序列化后写入文件中

dumpsdump序列化同一个内容,所得出的结果是一样的

使用方法:

        import pickle

        注:json也可以序列化和反序列化,但json面对复杂数据无法处理;

    a.

序列化到文件中:pickle.dump():使用此方法进行序列化

例:

import pickle

dict1 = {‘a‘:1,‘name‘:‘LiuZhengwei‘,‘age‘:25}

f = open("test1.pkl","wb")

pickle.dump(dict1,f)

f.close()

注:此时就把字典写入到磁盘中了

如果使用的json,则使用json.dump(dict1,f)

列表,字典等只能序列化之后才能存入文件中

从文件中反序列化:pickle.load():使用此方法进行返序列化

例:

import pickle

f = open("test1.pkl","rb")

data = pickle.load(f)

print(data)

f.close()

注:此时把dump到磁盘中的文件反序列化显示出来

如果使用的json,则使用json.load(f)

    b.  

不序列化到文件中:pickle.dumps()

import pickle

li = [‘alex‘,11,22,‘ok‘,‘sb‘]

dumpsed = pickle.dumps(li)

print(dumpsed)

注:可以看到把li列表序列化成了二进制内容,不能正常查看

技术分享

不从文件中反序列化:pickle.loads()

import pickle

li = [‘alex‘,11,22,‘ok‘,‘sb‘]

dumpsed = pickle.dumps(li)

print(dumpsed)

loadsed = pickle.loads(dumpsed)

print(loadsed)

技术分享

json的序列化跟pickle一样:

    import json

json仅仅可以序列化int,float,bool,str,list,dict,None

dumps:返回的是字符串,而pickle返回的是字节


本文出自 “激情燃烧的岁月” 博客,请务必保留此出处http://liuzhengwei521.blog.51cto.com/4855442/1892283

pickle,json序列化

原文:http://liuzhengwei521.blog.51cto.com/4855442/1892283

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!