django bytesIO到base64字符串并作为JSON返回

8xiog9wr  于 2023-03-13  发布在  Go
关注(0)|答案(2)|浏览(134)

我正在使用python 3 &我有这段代码,试图让base64退出流并以json的形式返回n-但没有工作。

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())似乎提供字节

nkcskrwz

nkcskrwz1#

在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()
mfpqipee

mfpqipee2#

我认为有一个更简单的解决办法。
只需从流中获取字节并将其传递给b64encode。

b64encode(f.getvalue())

输出(也是字节)

b'c2VwYWwgbGVuZ3RoIChjbSksc2V...'

相关问题