Python3 GZip压缩字符串

9
我将使用Python3实现以下功能:
data = json.dumps(packet)
s = StringIO()
g = gzip.GzipFile(fileobj=s, mode='w')
g.write(data)
g.close()
gzipped_body = s.getvalue()

但它一直报以下错误:
TypeError: string argument expected, got 'bytes'

我正在使用的示例代码基于Python2,因此我认为StringIO可能存在一些变化,这可能是导致问题的原因,但我不确定。有人能给我一些提示如何在Python3中获取一些JSON的gzip字符串吗?

1个回答

19

看起来在Python3中这可能会变得更容易。目前为止,这段代码似乎可以正常工作:

data = bytes(json.dumps(packet), 'utf-8')
s_out = gzip.compress(data)

bytes()是将StringIO().getvalue()字符串转换为字节的简单方法!然后您可以对其进行gzip压缩。 - Kermit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接