0

我正在使用 Python 2.6 从 SQL Server 读取数据。我被卡住了,因为我的数据库中的一列是 varbinary。我用的是pyodbc,Python程序中的数据类型是“buffer”。

现在,数据库中的此列存储 gzip 压缩文本。如果可以访问“缓冲区”数据类型,我无法弄清楚如何从 Python 中解压缩它。

请问有什么帮助/指点吗?

这就是我正在做的

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

提前致谢!

4

1 回答 1

0

做这个:

print repr(x[:3])

流通常zlib以 3 个字节开始x\x9cc。一个gzip流总是以 2 个字节开始\x1f\x8b。你有什么?

根据您的评论,结果是'+J\xcd'。这似乎不是zlibgzip。你有什么文件?您是否有任何创建该数据的源代码?

于 2011-04-07T07:40:29.353 回答