2016-11-05 80 views
0

我试图遵循这一example保存base64编码图像I接收在一个HTTP请求,对文件系统:错误,同时节省base64编码图像到文件系统

imgData = re.sub('^data:image/.+;base64,', '', inner_data['output']['image']) 

with open("imageToSave.png", "wb") as fh: 
    fh.write(base64.decodestring(imgData)) 

我已打印字符串I”试图解码,它似乎是正确的。

/9j/4AAQSkZJRgABAQAAAQABAAD/ [...] /+bax2njPQ8daytViRZP7UQbbmGRVEg6sPf1qYK0bCnKzuf/Z 

,但我不断收到此错误

TypeError: expected bytes-like object, not str 
+0

请始终包含**完整回溯**,而不仅仅是异常行。 *什么表达式*抛出异常? –

回答

3

base64.decodestring()函数需要字节,而不是一个str对象。您需要先将base64字符串编码为字节。因为在这样的字符串中的所有字符的ASCII字符,只需使用该编解码器:

fh.write(base64.decodestring(imgData.encode('ascii'))) 

base64.decodestring() documentation

解码的bytes状物体小号,它必须包含一个或多个行的base64编码数据,并返回解码后的bytes

+0

工作。谢谢! – jas