python 自帶的 zlib模塊


zlib 模塊 : 實現數據的 壓縮 和 解壓縮

'''
zlib 壓縮后是一個 字節 類型的數據格式
試過多種方式都無法編譯成字符串,字符串為了儲存到數據庫
'''
'''
解決方法:base64
把 字節 通過base64作一個封裝,轉成一個可編譯的字節,在通過 encode 與decode 進行轉化

'''
'''
轉化后的 zlib字節 在通過 zlib 進行解壓 即可
'''
    @classmethod
    def dumps(cls, obj, compress=False, level=1, ensure_ascii=True):
        if compress:
            compress_obj = zlib.compressobj()
            compress_obj = compress_obj.compress(ujson.dumps(obj).encode('utf-8')) + compress_obj.flush()
            return base64.b64encode(compress_obj).decode('utf-8')
        else:
            return ujson.dumps(obj, double_precision=4, ensure_ascii=ensure_ascii)

    @classmethod
    def loads(cls, string, default=None, decompress=False):
        if decompress:
            decompress_obj = zlib.decompressobj()
            decompress_obj = decompress_obj.decompress(base64.b64decode(string.encode('utf-8'))) + decompress_obj.flush()
            return ujson.loads(decompress_obj)
        else:
            return ujson.loads(string) if string else default
項目實例


 

 


免責聲明!

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



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