我正在尝试使用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字符串的提示吗?
答案 0 :(得分:9)
看起来这可能在Python3中变得更容易了。到目前为止,此代码似乎有效:
data = bytes(json.dumps(packet), 'utf-8')
s_out = gzip.compress(data)