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