问题 如何在JSON中编码字节? json.dumps()抛出一个TypeError


我正在尝试编码包含字节字符串的字典 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字节的字典?


6290
2017-10-12 13:54


起源



答案:


JSON格式仅支持 unicode字符串。由于Base64将字节编码为仅ASCII字节,因此您可以使用该编解码器对数据进行解码:

encoded = base64.encodestring(b'data to be encoded')
data['bytes'] = encoded.decode('ascii')

14
2017-10-12 13:57