Zastanawiam się, czy możliwe jest przekonwertowanie ciągu bajtów, który otrzymałem z odczytu pliku na ciąg znaków (czyli type(output) == str
). Wszystko, co znalazłem w Google do tej pory, to odpowiedzi takie jak: How do you base-64 encode a PNG image for use in a data-uri in a CSS file?, które wygląda na to, że działałoby w Pythonie 2 (gdzie, jeśli się nie mylę, ciągi były ciągami bajtów), ale które nie działają w pythonie 3.4 już.Konwertuj ciąg bajtowy na łańcuch zakodowany na podstawie 64 (wyjście nie będące ciągiem bajtowym)
Powodem chcę przekonwertować ten wynikowy ciąg bajtów do normalnego ciąg jest, że chcę, aby skorzystać z tej base64 zakodowane dane przechowywać w obiekcie JSON, ale wciąż otrzymuję błąd podobny do:
TypeError: b'Zm9v' is not JSON serializable
Oto minimalne przykładem dokąd idzie źle:
import base64
import json
data = b'foo'
myObj = [base64.b64encode(data)]
json_str = json.dumps(myObj)
więc moje pytanie brzmi: czy istnieje sposób przekonwertować ten obiekt typu bytes
do obiektu typu str
przy jednoczesnym zachowaniu base64 kodowanie (tak w tym przykładzie chcę wynikiem będzie ["Zm9v"]
. czy to możliwe?
Ah snap, który wygląda tak, jak to działa. Dziękuję bardzo! – Joeytje50