这篇文章主要为大家展示了“pickle如何实现json序列化”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“pickle如何实现json序列化”这篇文章吧。
序列化:
把对象 转化为 str或者bytes
反序列化:
把str或者bytes转化为对象
pickle是python所特有的序列化工具,可以序列化所有的东西包括函数,类,数据类型等,序列化后是字节或者二进制文件
json是所有语言都支持的,只支持序列化常规的数据类型,序列化后是可视化的,跟原来的内容是一样的,可视化性更强
pickle:
dumps:序列化后直接返回字符串或者bytes(字节)
dump:序列化后写入文件中
dumps和dump序列化同一个内容,所得出的结果是一样的
使用方法:
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返回的是字节
以上是“pickle如何实现json序列化”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/226040.html