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()) кажется, дает байты
Ответы
Ответ 1
В Python 3.x base64.b64encode
принимает объект bytes
и возвращает объект bytes
.
>>> base64.b64encode(b'a')
b'YQ=='
>>> base64.b64encode(b'a').decode()
'YQ=='
Вам нужно преобразовать его в объект str
, используя bytes.decode
:
return base64.b64encode(stream.getvalue()).decode()