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