Loading

python使用msgpack(umsgpack)

前言

如果有业务需要将一个数据塞进队列由另一端接收,我们就需要考虑到数据的大小,因为这跟队列的效率和稳定性正相关,如果你希望能对这部分数据进行一定的压缩,并且提高解压缩的效率时,希望你能想到 msgpack

正文

性能对比

效率

这里先放出测试的数据
我们将网页源代码与其他数据组成dict,使用JSON和msgpack进行转换,每次转换都为dict转换目标格式再转换回来
循环1000次打印耗费时间
代码如下

结果如下

大小

我们数据不变,修改测试代码为下图,意为打印转换后的长度和转换后的数据

结果为

使用

是不是对这种效果满意,那么我们开始使用

安装

pip install umsgpack

转换

import umsgpack
umsgpack可方便地将大部分数据格式转换,需要注意的是datetime类型等Python独有的无法正常转换(跟json限制差不多)
packd = umsgpack.packb(t)
umsgpack.packb可将数据转换为bytes类型的数据
res = umsgpack.unpackb(packd)
umsgpack.unpackb将转换后的bytes数据转换为Python使用的数据格式

posted @ 2019-12-09 17:34  ChnMig  阅读(2507)  评论(1编辑  收藏  举报