2014-12-02 9 views
10

Ich benutze Python 3 & Ich habe diesen Code, versuchen, base64 aus dem Stream und returnn als JSON - aber nicht funktioniert.django BytesIO zu base64 String & return als JSON

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

meiner Meinung nach, ich habe:

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

immer Fehler nicht JSON serializable ist. base64.b64encode (stream.getvalue()) scheint Bytes

+0

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

Antwort

14

In Python 3.x geben, base64.b64encode akzeptiert ein bytes Objekt und gibt ein bytes Objekt.

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

Sie müssen es Objekt str konvertieren, mit bytes.decode:

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

mir fehlte '.decode()' in meinem Flask App Vielen Dank! – Robula