Python中的MessagePack

MessagePack序列化传输

  1. MessagePack是一个机遇二进制搞笑的对象序列化类库,可用于跨语言通信。
  2. 可以像JSON那样,在许多种语言之间交换结构对象。但他比json更快也更轻巧。
  3. 支持Python、Ruby、Java、C/C++等众多语言。宣称比Google Protocol Buffers还要快4倍。
  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))

输出结果为:
Python中的MessagePack