Python: 解码base64编码的字符串

5

我是Python的新手,有一个关于解码Base64编码的URL的问题:

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

无法工作!类型错误:填充不正确

我也尝试添加所需的填充:

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

但我仍然收到“TypeError: Incorrect padding”错误。

如果有人知道解决方案,那就太好了。


为什么它应该工作?你从哪里得到这个字符串? - alexvassel
其他Base64编码的URL都能正常工作...我是从一个网站上爬取的! - pythonNewbie
1个回答

8
似乎最后的A是多余的:
In [4]: base64.b64decode('aHR0cDovLzR1ZnJlZS50ay9tZWRpYTcyMzY0Ni9mdWVuZi8wMzYubXAz')
Out[4]: 'http://4ufree.tk/media723646/fuenf/036.mp3'

谢谢!所以我必须弄清楚何时添加填充和何时删除多余的字符... - pythonNewbie
1
不,如果你的base64字符串末尾有不需要的字符,那么你所拥有的数据就是损坏的。该字符串不是有效的base64格式,没有办法在不知道它原本应该是什么的情况下修复它。你从哪里得到的这个字符串? - Jack O'Connor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接