我想知道是否可以将我从读取文件中获得的字节字符串转换为字符串(所以 type(output) == str
)。到目前为止,我在 Google 上找到的所有答案都是 How do you base-64 encode a PNG image for use in a data-uri in a CSS file? ,它看起来确实可以在 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"]
。这可能吗?
原文由 Joeytje50 发布,翻译遵循 CC BY-SA 4.0 许可协议
对我有用的是将
b64encode
行更改为:这在 https://stackoverflow.com/a/42776711 中有解释:
接受的答案对我不起作用(Python 3.9)并给出错误: