Python中的MessagePack
MessagePack序列化传输
- MessagePack是一个机遇二进制搞笑的对象序列化类库,可用于跨语言通信。
- 可以像JSON那样,在许多种语言之间交换结构对象。但他比json更快也更轻巧。
- 支持Python、Ruby、Java、C/C++等众多语言。宣称比Google Protocol Buffers还要快4倍。
- 兼容json和pickle.
使用前需要安装插件msgpack
- 安装方法:
pip install msgpack
常用方法
- packb 序列化对象。提供了dumps类兼容pickle和json。
- unpackb 反序列化对象。提供了loads类兼容
- pack 序列化对象保存到文件对象。提供了dump类兼容。
- unpack 反序列化对象保存到文件对象。提供了load类兼容。
- 简单示例:
import pickle,msgpack,json
arr = {"name":"tom","age":20,"interest":("music","movie"),"class":["python"]}
# json 处理
js = json .dumps(arr)
bjs = js.encode()
print("json处理:--------------------")
print(type(bjs),len(bjs),bjs,sep = "\n")
#pickle处理
pk = pickle.dumps(arr)
print("pickle处理-------------------------")
print(type(pk),len(pk),pk,sep = "\n")
#msgack处理
msg = msgpack.dumps(arr) #也可以使用msgpack.packb(arr)
print("msgack处理-------------------------")
print(type(msg),len(msg),msg,sep="\n")
print("msgack反序列化:",msgpack.loads(msg))
print("msgack反序列化:",msgpack.unpackb(msg))
输出结果为: