ho estratto stringa base64 di valori ForeColor, consistenza e edgemap di immagini, ho una lista con seguente struttura:Decode pitone Base64 String
forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
edge=AfCAFg5iIATCPwTAEIiBFggBDw
forecolor=AgAsAQ0CJAMcDRgOGg8DHQYeBzYBPQ4-DU0ETgNtBm4CfQI
sto cercando di decodificare questi valori, ma io sono sempre corretto errore di imbottitura, qui è l'errore esatto:
Traceback (most recent call last):
File "ImageVectorData.py", line 44, in <module>
print "Decoded String: " + decoded.decode('base64', 'strict')
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/base64_codec.py", line 42, in base64_decode
output = base64.decodestring(input)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py", line 321, in decodestring
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
Ecco il mio codice:
for item in value:
print "String before Split: " + item
if item.split("=")[0] == "forecolor":
decoded = (item.split("=")[1])
print "String to be decoded: " + decoded
print "Decoded String: " + decoded.decode('base64', 'strict')
Ho visto anche un interessante mettere fuori quando la stringa base64 prima forecolor ottenuto decodificato: Ecco la fuori messo di che:
String before Split: forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
String to be decoded: AgCEAg4DUQQCBQQGARMBFQE1AmUB
Decoded String: ?Q5e
io non sono davvero sicuro di quello che sto facendo male qui. Ho esaminato il seguente documento Python e l'ho provato, ma non ha funzionato neanche: http://docs.python.org/library/base64.html
Il valore per 'edge' non sembra essere una stringa con codifica Base64 vlaid, quindi Python dà un messaggio di errore. Utilizza input validi e le cose dovrebbero funzionare. –
Se si guarda il codice, sto solo provando a decodificare forecolor, quindi non penso che Edge entri in azione a questo punto. –
@SvenMarnach, puoi risolvere il problema del padding aggiungendo un paio di '==' alla fine della stringa. Il problema più grande è che il risultato decodificato è totalmente indecifrabile. –