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