2014-12-02 15 views
10

Używam python 3 & Mam ten kod, próbuję uzyskać base64 ze strumienia i zwrócony jako json - ale nie działa.django bytesIO do base64 String i return jako JSON

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

moim zdaniem mam:

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

uzyskanie nie jest JSON serializacji. base64.b64encode (stream.getvalue()) wydaje dając bajty

+0

strHM jest base64.b64encode (stream.getvalue()) – user903772

Odpowiedz

14

w Pythonie 3.x base64.b64encode akceptuje bytes obiekt i zwraca bytes obiekt.

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

Trzeba przekonwertować go do str obiektu, używając bytes.decode:

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

mi brakuje '.decode()' w moim Kolby aplikacja. Dziękuję Ci! – Robula