Мне было интересно, можно ли преобразовать строку байтов, которую я получил при чтении файла, в строку (так что type(output) == str
). Все, что я нашел в Google до сих пор, это ответы типа Как вы base-64 кодируете изображение PNG для использования в data-uri в файле CSS?, который, кажется, будет работать в python 2 (где, если я не ошибаюсь, строки в любом случае были байтовыми строками), но больше не работает в python 3.4.
Причина, по которой я хочу преобразовать полученную строку байтов в обычную строку, заключается в том, что я хочу использовать эти данные в кодировке base64 для хранения в объекте JSON, но я продолжаю получать сообщение об ошибке, похожее на:
TypeError: b'Zm9v' is not JSON serializable
Вот минимальный пример того, где что-то идет не так:
import base64
import json
data = b'foo'
myObj = [base64.b64encode(data)]
json_str = json.dumps(myObj)
Итак, мой вопрос: есть ли способ преобразовать этот объект типа bytes
в объект типа str
, сохраняя при этом кодировку base64 (поэтому в этом примере я хочу, чтобы результат был ["Zm9v"]
. Возможно ли это?