Email: office@yourdomain.com
Phone:: +44 20 7240 9319
back to top

Blog

Простое сжатие и передача данных в текстовом виде

Вот потребуется передать HTML или JSON куда-нибудь без сложностей и чтобы не изобретать велосипедов, конвертирования в какие-либо форматы и сериализации, делается следующее: данные сжимаются с помощью библиотеки zlib и переводятся в base64.

На вход идет строка со всякими спец-символами, а на выходе строка с относительно сжатыми данными и с ограниченными символами (A-Z, a-z и 0-9, да пара спецсимволов).

import base64
import zlib


def compress(value):
    return base64.b64encode(zlib.compress(value))


def decompress(value):
    return zlib.decompress(base64.b64decode(value))

Пример использования:

>>> html = '<html></html>'
>>> html
'<html></html>'
>>> compressed = compress(html)
>>> compressed
'eJyzySjJzbGz0QdTAB/mBI4='
>>> decompressed = decompress(compressed)
>>> decompressed
'<html></html>'