2016-11-05 79 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