Python3 GZip压缩字符串

时间:2014-09-02 20:48:16

标签: python-3.x gzip

我正在尝试使用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 个答案:

答案 0 :(得分:9)

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

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