2012-11-25 198 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的有效字符串,没有办法在不知道它应该放在第一位的情况下修复它。你在哪里得到它? –