Распакуйте поток байтов с помощью встроенного модуля gzip.
Если у вас возникли проблемы, покажите точный минимальный код, который вы использовали, точное сообщение об ошибке и трассировку, а также результат print repr(your_byte_stream[:100])
Дополнительная информация
1. Чтобы узнать о путанице в gzip / zlib / deflate, прочитайте раздел «Прочее использование» этой статьи Википедии .
2. Может быть проще использовать модуль zlib, чем модуль gzip, если у вас есть строка, а не файл. К сожалению, документы Python неполные / неправильные:
""»
zlib.decompress (string [, wbits [, bufsize]])
...
Абсолютное значение wbits является основанием два логарифма размера буфера истории («размер окна»), используемого при сжатии данных. Его абсолютное значение должно быть от 8 до 15 для самых последних версий библиотеки zlib, большие значения приводят к лучшему сжатию за счет большего использования памяти. Значение по умолчанию равно 15. Когда wbits отрицателен, стандартный заголовок gzip подавляется; это недокументированная функция библиотеки zlib, используемая для совместимости с форматом сжатого файла unzip.
"" "
Во-первых, 8 <= log2_window_size <= 15 со значением, приведенным выше. Тогда то, что должно быть отдельным аргументом, помещается сверху: </p>
arg == log2_window_size означает, что предполагается, что строка имеет формат zlib (RFC 1950; то, что в HTTP 1.1 RFC 2616 вводит в заблуждение «deflate»).
arg == -log2_window_size означает, что предполагается, что строка в формате deflate (RFC 1951; что на самом деле реализовали люди, которые не читали RFC HTTP 1.1)
arg == 16 + log_2_window_size означает, что предполагается, что строка в формате gzip (RFC 1952). Таким образом, вы можете использовать 31.
Приведенная выше информация документирована в руководстве по библиотеке zlib C ... Ctrl-F для поиска windowBits
.