2012-11-25 113 views
4

我是新來的蟒蛇有一個關於解碼base64編碼的URL問題:的Python:解碼base64編碼字符串

import base64 
url64="aHR0cDovLzR1ZnJlZS50ay9tZWRpYTcyMzY0Ni9mdWVuZi8wMzYubXAzA" 
finalUrl=base64.b64decode(url64) 

都不行!類型錯誤:不正確的填充

我也嘗試添加所需的填充:

import base64 
url64="aHR0cDovLzR1ZnJlZS50ay9tZWRpYTcyMzY0Ni9mdWVuZi8wMzYubXAzA" 
finalUrl=base64.b64decode(url64 + '=' * (4 - len(url64) % 4)) 

但IM仍然得到類型錯誤:不正確的填充

將是巨大的,如果有人知道一個解決方案。

+0

它爲什麼要工作?你從哪裏得到這個字符串? – alexvassel

+0

其他base64編碼的URL工作正常......我從刮網站得到它! – pythonNewbie

回答

6

這樣看來,最終的A是多餘的:

In [4]: base64.b64decode('aHR0cDovLzR1ZnJlZS50ay9tZWRpYTcyMzY0Ni9mdWVuZi8wMzYubXAz') 
Out[4]: 'http://4ufree.tk/media723646/fuenf/036.mp3' 
+0

謝謝!所以我必須弄清楚何時添加填充以及何時刪除多餘的字符...... – pythonNewbie

+0

不,如果在base64字符串的末尾有不需要的字符,那麼您的數據會被破壞。這個字符串不是base64的有效字符串,沒有辦法在不知道它應該放在第一位的情況下修復它。你在哪裏得到它? –