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使用的數據格式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM