我正在尝试将Base64解码为Hex,用于大约200个Base64数据,我得到以下错误。它对其中60个进行解码,然后停止。
ABHvPdSaxrhjAWA=
0011ef3dd49ac6b8630160
ABHPdSaxrhjAWA=
Traceback (most recent call last):
File "tt.py", line 36, in <module>
csvlines[0] = csvlines[0].decode("base64").encode("hex")
File "C:\Python27\lib\encodings\base64_codec.py", line 43, in base64_decode
output = base64.decodestring(input)
File "C:\Python27\lib\base64.py", line 325, in decodestring
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
一些来自CSV的原始Base64源
ABHPdSaxrhjAWA=
ABDPdSaxrhjAWA=
ABDPdSaxrhjAWA=
ABDPdSaxrhjAWA=
ABDPdSaxrhjAWA=
ABDPdSaxrhjAWA=
ABDPdS4xriiAVQ=
ABDPdSqxrizAU4=
ABDPdSrxrjPAUo=
CSV文件中至少有一个字符串不是Base64字符串,是损坏的Base64字符串,或者是缺少所需的
=
填充的字符串。示例值ABHPdSaxrhjAWA=
很短,=
或缺少另一个数据字符。正确填充的Base64字符串的长度是4的倍数,因此可以轻松地重新添加填充:
如果值then仍然无法解码,则您的输入已损坏或以Base64开头无效。
对于示例错误
ABHPdSaxrhjAWA=
,上面添加了一个=
使其可解码:我需要强调的是,你的数据可能只是被破坏了。控制台输出包括一个有效值和一个失败值。有效的一个是一个字符更长,这是唯一的区别:
注意第四位的
v
;这在第二个示例中是缺失的。这可能表示CSV数据发生了一些事情,导致该字符从第二个示例中删除。添加padding可以使第二个值再次可解码,但结果将是错误。我们不能告诉你这两个选择中的哪一个是原因。相关问题 更多 >
编程相关推荐