¿Cómo codificar bytes en JSON? json.dumps () lanzando un TypeError

Estoy tratando de codificar un diccionario que contiene una cadena de bytes con json , y obtener un is not JSON serializable error .

Código de muestra:

 import base64 import json data={} encoded = base64.encodebytes(b'data to be encoded') data['bytes']=encoded print(json.dumps(data)) 

El error que recibo:

 TypeError: b'ZGF0YSB0byBiZSBlbmNvZGVk\n' is not JSON serializable 

¿Cómo puedo codificar correctamente mi diccionario que contiene bytes con JSON?

El formato JSON solo admite cadenas Unicode . Dado que Base64 codifica bytes a bytes ASCII solamente, puede usar ese códec para decodificar los datos:

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