django bytesIO to base64 String & return as JSON



我正在使用python 3,我有这段代码,试图将base64从流中取出并返回为json-但不起作用。

       stream = BytesIO()
       img.save(stream,format='png')
       return base64.b64encode(stream.getvalue())

在我看来,我有:

hm =mymap()
    strHM = hm.generate(data)
return HttpResponse(json.dumps({"img": strHM}),content_type="application/json"  )

获取错误不是 JSON 可序列化的。 base64.b64encode(stream.getvalue()) 似乎给出了字节

在 Python 3.x 中,base64.b64encode接受一个bytes对象并返回一个bytes对象。

>>> base64.b64encode(b'a')
b'YQ=='
>>> base64.b64encode(b'a').decode()
'YQ=='

您需要使用bytes.decode将其转换为str对象:

return base64.b64encode(stream.getvalue()).decode()
我认为

有一个更简单的解决方案。

只需从流中获取字节并将其传递给 b64encode。

b64encode(f.getvalue())

输出(也是字节)

b'c2VwYWwgbGVuZ3RoIChjbSksc2V...'

相关内容

最新更新