使用Python3.6解压缩gz压缩字符串

use*_*726 2 compression gzip zlib python-3.x

我想使用python3.6解压缩以下gz压缩字符串:

H4sIAAAAAAAA//NIzcnJVwjPL8pJAQBWsRdKCwAAAA==
Run Code Online (Sandbox Code Playgroud)

解压缩的字符串是" Hello World "

我能够使用在线工具解压缩它 - http://www.txtwizard.net/compression但我找不到在python中执行此操作的正确方法.

我尝试了zlib和gzip,但它们需要字节而不是str.我也尝试使用io.Bytes()进行转换,但没有用.我的代码是:

import gzip
import io 

class SearchEvents:

def decompressPayload():
    payload = "H4sIAAAAAAAA//NIzcnJVwjPL8pJAQBWsRdKCwAAAA=="
    payload_bytes = io.BytesIO(payload)
    print(gzip.decompress(payload_bytes))

SearchEvents.decompressPayload()
Run Code Online (Sandbox Code Playgroud)

我期待" Hello World "作为输出.但是我收到以下错误:

Traceback (most recent call last):
File "SearchEvents.py", line 13, in <module>
SearchEvents.decompressPayload()
File "SearchEvents.py", line 10, in decompressPayload
payload_bytes = io.BytesIO(payload)
TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

有没有办法实现我想要的?

Ign*_*ams 6

我想使用python3.6解压缩以下gz压缩字符串:

...==
Run Code Online (Sandbox Code Playgroud)

那不是gzip压缩的字符串.至少,直到你首先解码它Base64.

>>> gzip.decompress(base64.b64decode('H4sIAAAAAAAA//NIzcnJVwjPL8pJAQBWsRdKCwAAAA=='))
b'Hello World'
Run Code Online (Sandbox Code Playgroud)