python使用msgpack(umsgpack)

狂风中的少年 提交于 2019-12-10 01:23:17

前言

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!