使用BytesIO或StringIO与base64.standard_b64encode的Python3.5错误

时间:2016-10-14 17:16:17

标签: python-3.x bytesio

我正在尝试获取BytesIO或StringIO对象的内容,并使用base64.standard_b64encode()对其进行编码。我试过了两个。这在python 2.7中工作正常,但是在python 3.5中我得到以下错误。

TypeError:无法将'bytes'对象隐式转换为str

这是有问题的代码部分。

output = BytesIO()
img.save(output,  format="PNG")
output.seek(0)


data = "data:image/png;base64," + base64.standard_b64encode(output.read())

html = "<html><body><img src='DATA'></body></html>"

我已经看到使用b“sting”为字符串修复此错误的引用,但我不知道这对于从文件中读取将如何应用。

由于

1 个答案:

答案 0 :(得分:0)

原来我的问题不在于base64编码,而在于我试图将其附加到的字符串。我必须执行以下操作,以便python不再将其视为字节编码。

base64.b64encode(output.read()).decode()