| 123456789101112131415161718192021222324252627 |
- import json
- import brotli
- import base64
- class JsonCompressor:
- @staticmethod
- def compress_json(data):
- """
- Compress a json object and encode it with base64
- """
- json_str = json.dumps(data)
- json_bytes = json_str.encode('utf-8')
- compressed = brotli.compress(json_bytes, quality=6)
- compressed_str = base64.b64encode(compressed).decode('utf-8') # convert bytes to string
- return compressed_str
- @staticmethod
- def decompress_json(compressed_str):
- """
- Decode the base64 string and decompress the json object
- """
- compressed = base64.b64decode(compressed_str.encode('utf-8')) # convert string to bytes
- decompressed_bytes = brotli.decompress(compressed)
- json_str = decompressed_bytes.decode('utf-8')
- data = json.loads(json_str)
- return data
|