python 序列化 pickle和json

Posted blogzyq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 序列化 pickle和json相关的知识,希望对你有一定的参考价值。

我们把对象(变量)从内存中变成可存储或传输的过程称为序列化,在Python中用pickle或json标准库。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输的别的计算机上。

pickle:支持Python里所有的数据类型(包括函数)

json:支持str,int,tule,list,dict

如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为json,因为json表示出来就是一个字符串,可以被所以语言所读取,也可以方便地存储到磁盘或者通过网络传输。json不仅是标准格式,而且比xml快,可以直接在web页面中读取,非常方便。

import json

#---序列化--- dic=‘name‘:‘jack‘,‘age‘:22,‘sex‘:‘male‘ data=json.dumps(dic) f=open(‘json_test.txt‘,‘w‘) f.write(data) #--json.dump(dic.f)
f.close()
#---反序列化---
fr=open(‘json_test.txt‘) 
dicdata=json.loads(fr.read()) #---等价于dicdata=json.load(fr)
fz.close()

json:javascript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。

将Python对象转换成json对象常用的两个函数是dumps和dump,之间唯一的区别就是dump把Python对象转换成json对象生成一个fp文件流,而dumps则生成一个字符串。

将json对象转成Python对象常用的两个函数是load和loads,区别同上。

 

下面是pickle标准库的用法:

import pickle

#---序列化--- dic=‘name‘:‘jack‘,‘age‘:22,‘sex‘:‘male‘ p=pickle.dumps(dic) f=open(‘pickle_test‘,‘wb‘) #---等价于pickle.dump(dic,f) f.write(p) f.close()
#---反序列化--- fr=open(‘pickle_test‘,‘rb‘) dicata=pickle.loads(fr.read()) #---等价于dicdata=pickle.load(fr) fr.close()

  

参考资料:https://www.cnblogs.com/fmgao-technology/p/9078924.html 

以上是关于python 序列化 pickle和json的主要内容,如果未能解决你的问题,请参考以下文章

Python序列化模块pickle和json使用和区别

python 序列化 pickle和json

python 序列化模块之 json 和 pickle

python 序列化 json pickle

python序列化 pickle,json模块

Python之路-json和pickle序列化/反序列化