[Django]-Django bytesIO to base64 String & return as JSON

39👍

In Python 3.x, base64.b64encode accepts a bytes object and returns a bytes object.

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

You need to convert it to str object, using bytes.decode:

return base64.b64encode(stream.getvalue()).decode()

0👍

I think there is a simpler solution.

Simply get the bytes from the stream and pass them to b64encode.

b64encode(f.getvalue())

Output (also bytes)

b'c2VwYWwgbGVuZ3RoIChjbSksc2V...'

Leave a comment