【发布时间】:2019-12-25 12:48:55
【问题描述】:
我正在使用 python gzip 模块压缩字符串并在 golang 中解压缩。
python中压缩字符串的模块:
gzip.compress(json.dumps("hello").encode(),-1)
在golang中解压的模块:
func Decompression(compData []byte) ([]byte, error) {
gr, err := gzip.NewReader(bytes.NewBuffer(compData))
if err != nil {
return compData, err
}
defer gr.Close()
data, err := ioutil.ReadAll(gr)
if err != nil {
return nil, err
}
return data, err
}
收到错误:Gzip:invalid header
在压缩和解压缩时使用相同的压缩级别。
谁能指出我正在做的错误?
【问题讨论】:
-
由于您的问题缺乏详细信息,因此猜测:您使用
print在 Python 中而不是write中输出压缩结果。print用二进制值创建一个可打印的字符串,即b'\x1f\x8b\x08...。这当然不是有效的 gzip。 -
python 语句中没有提到 print。 @Steffen 我需要将压缩数据发布到 kafka,请朝那个方向提供帮助。
-
“我需要将压缩数据发布到 kafka,请朝那个方向提供帮助。” - 这是一个完全不同的问题,应该作为一个新问题提出。但也许看看the Kafka documentation 压缩输入是如何预期的。或者只使用kafka-python。
标签: python python-3.x go compression gzip