2013-10-17 29 views
2

我可以解壓縮從MySQL壓縮的數據嗎?python 2.x zlib.decompress mysql的數據

的MySQL 5.6

select to_base64(compress("test")); 

從MySQL

BAAAAHicK0ktLgEABF0BwQ== 

蟒蛇結果進行解壓縮

>>> import zlib 
>>> import base64 
>>> s = "BAAAAHicK0ktLgEABF0BwQ==" 
>>> zlib.decompress(base64.b64decode(s)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
zlib.error: Error -3 while decompressing data: incorrect header check 

我檢查了zlib manual我不知道爲什麼它給這個錯誤嗎?

解決方案 我找到了我的朋友的解決方案。

ss = base64.b64decode(s) 
zlib.decompress(ss[4:]) 

回答

-1

我希望MySQL是沒有壓縮的正確方法(或不使用zlib的,反正)

import zlib 
import base64 
print(base64.b64encode(zlib.compress('test'))) # 'test'.encode() on Python3 

產地:

'eJwrSS0uAQAEXQHB' 
+0

有關於MySQL的壓縮率的信息, https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_compress – user1377324

+0

你回來只是'選擇壓縮(「測試」)'? –

+0

我使用'select compress(「test」)''它給了我二進制代碼'x + I - 。]',我做了長度'select length(compress(「test」));',它給了我16,似乎壓縮函數在mysql中是不同的,而python給了我12個'>>> len(zlib.compress(「test」))'' – user1377324