使用Python从MS SQL Server读取zlib/gzip压缩数据
我正在使用Python 2.6从SQL Server读取数据。现在遇到问题,因为我数据库中的一个列是varbinary类型。我使用的是pyodbc,而在Python程序中,这个数据的类型是“buffer”。
这个数据库中的列存储的是经过gzip压缩的文本。我现在不知道怎么从Python中解压缩这个“buffer”类型的数据。
有没有人能给点帮助或建议呢?
这是我正在做的事情
con = pyodbc.connect(...)
cursor = con.cursor()
cursor.execute('select ...')
row = cursor.fetchone()
if row:
x = row.varbinary_column_name
asciistring = zlib.decompress(x) # throws zlib.error: Error -3 while
# decompressing data: incorrect header check
提前谢谢大家!
1 个回答
0
这样做:
print repr(x[:3])
一个 zlib
数据流通常以三个字节 x\x9cc
开头。而一个 gzip
数据流总是以两个字节 \x1f\x8b
开头。你手上的数据是什么呢?
根据你的评论,结果是 '+J\xcd'
。这看起来既不是 zlib
也不是 gzip
。你有什么文档吗?你有没有生成这些数据的源代码?