Python3 GZip压缩字符串

Gre*_*egg 2 gzip python-3.x

我试图用Python3做以下事情:

data = json.dumps(packet)
s = StringIO()
g = gzip.GzipFile(fileobj=s, mode='w')
g.write(data)
g.close()
gzipped_body = s.getvalue()
Run Code Online (Sandbox Code Playgroud)

但它一直在抱怨以下错误:

TypeError: string argument expected, got 'bytes'
Run Code Online (Sandbox Code Playgroud)

我正在使用的示例代码基于Python2,所以我认为StringIO中可能会有一些变化,但我不确定.任何人都给我一些关于如何在Python3中获取一些JSON的gzip字符串的提示?

Gre*_*egg 10

看起来这可能在Python3中变得更容易了.到目前为止,此代码似乎有效:

data = bytes(json.dumps(packet), 'utf-8')
s_out = gzip.compress(data)
Run Code Online (Sandbox Code Playgroud)