中山建设厅网站,企业wordpress主题下载地址,连云港商城网站开发设计,智慧团建网站登陆目录
概念阐述
pickle
json
msgpack 概念阐述 序列化是指将对象转化为可存储或可传输的数据格式#xff0c;例如将 Python 对象转化为二进制、JSON 或 XML 等格式#xff0c;以便于将其存储到文件中或在网络上传输。在Python中#xff0c;可以使用pickle、json、msgpac…目录
概念阐述
pickle
json
msgpack 概念阐述 序列化是指将对象转化为可存储或可传输的数据格式例如将 Python 对象转化为二进制、JSON 或 XML 等格式以便于将其存储到文件中或在网络上传输。在Python中可以使用pickle、json、msgpack(第三方模块)进行序列化。 反序列化则是将序列化后的数据恢复成原来的对象。也就是将二进制、JSON 或 XML 等格式的数据转化为 Python 对象。同样在Python中可以使用 pickle、json、msgpack等模块进行反序列化。 pickle (1) 介绍 pickle是一个内置模块仅需导入即可使用 pickle主要围绕字节流来序列化和反序列化 因为其围绕字节流所以相对相应的文件读写要使用wb和rb 虽然其序列化的是字节流(二进制数据流)但是是python中独有的编码方式数据并不通用与其他编程语言 (2) 以下是一些相关方法 dumps(obj)将python对象转换为bytes对象(序列化为字节流)返回 loads(obj)将序列化的字节流数据反序列化为python对象返回 dump(obj,file)将python对象转换为bytes对象并写入文件中(序列化为字节流并写入文件) load(file,obj)读取文件中字节流数据并反序列化为python对象返回 (3) 建议将pickle序列化数据保存的文件名以.pkl或.pikcle来命名 (4) 以下是一些示例 import pickletext {name:joden}with open(./t1.pickle,wb) as f:pickle.dump(text,f)with open(./t1.pickle,rb) as f:data pickle.load(f)print(data) json (1) 介绍 json是一个内置模块仅需导入即可使用 json主要围绕json格式字符串来序列化和反序列化 json相对相应的文件读写仅需使用w和r json是一种规定的用于交换传输的文本格式可以在不同编程语言中使用 (2) 以下是一些相关方法 dumps(obj)将python数据序列化为json格式字符串返回 loads(obj)将json格式字符串反序列化为python对象返回 dump(obj,f)将python对象序列化为json格式字符串并保存到文件中 load(f)读取文件中的json数据并反反序列化为python对象返回 (3) 建议将json序列化数据保存的文件名以.json来命名 (4) 以下是一些示例 import jsontext {name:joden}with open(./t1.json,w) as f:json.dump(text,f)with open(./t1.json,r) as f:data json.load(f)print(data) msgpack (1) 介绍 msgpack是一个第三方序列化库使用前需要安装 msgpack围绕通用的二进制数据流来进行序列化和反序列化 msgpack序列化的数据有很好的跨平台性和语言兼容性 msgpack序列化效率更高、更省内存 (2) 以下是一些相关方法 packb(obj)/dumps(obj)将python对象序列化为bytes对象返回 unpackb(bytes)/loads(bytes)将bytes对象反序列化为python对象返回 pack(obj,stream)/dump(obj,stream)将python对象序列化为bytes对象并写入steam流中 unpack(stream)/load(stream)从stream流中读取bytes对象并反序列化为python对象返回 (3) 以下是stream参数的可选值(io.IOBase子类对象) io.FileIO二进制文件对象 ioTextIOBase文本文件基类 io.BytesIO二进制内存文件对象 ioStringIO字符串内存文件对象 ioBufferedIOBase缓冲区文件基类 ioBufferedRandom缓冲区随机文件访问基类 ioBufferedReader缓冲区二进制读文件类(常用的读文件) ioBufferedWriter缓冲区二进制写文件类(常用的写文件) callback指定的回调函数中回调函数将接受序列化数据进行处理 (3) 建议将序列化数据保存的文件名以.msgpack来命名 (4) 以下是一些示例 import msgpackdata {name: joden}
# 创建一个文件流(ioBufferedWriter)并序列化写入
with open(data.msgpack, wb) as f:msgpack.pack(data, f)