我正在尝试使用json
对包含字符串的字典进行编码,并获得is not JSON serializable error
。
示例代码:
import base64
import json
data={}
encoded = base64.encodebytes(b'data to be encoded')
data['bytes']=encoded
print(json.dumps(data))
我收到的错误:
TypeError: b'ZGF0YSB0byBiZSBlbmNvZGVk\n' is not JSON serializable
如何使用JSON正确编码包含字节的字典?
答案 0 :(得分:20)
JSON格式仅支持 unicode字符串。由于Base64将字节编码为仅ASCII字节,因此您可以使用该编解码器对数据进行解码:
encoded = base64.encodestring(b'data to be encoded')
data['bytes'] = encoded.decode('ascii')