0

Python2.6を使用してSQLServerからデータを読み取ります。DBの列がvarbinaryであるため、スタックしています。私はpyodbcを使用していますが、Pythonプログラムのデータ型は「バッファ」です。

現在、DBのこの列にはgzip圧縮テキストが格納されています。'buffer'データ型へのアクセス権が与えられた場合、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。ストリームは常に 2 バイトからgzip始まります\x1f\x8b。あなたは何を持っていますか?

あなたのコメントによると、結果は でした'+J\xcd'zlibこれはまたはではないようgzipです。どのようなドキュメントがありますか? そのデータを作成したもののソースコードはありますか?

于 2011-04-07T07:40:29.353 に答える