バイト文字列を含む辞書を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でバイトを含む辞書を正しくエンコードするにはどうすればよいですか?
JSON形式はnicode文字列のみをサポートします。 Base64はバイトをASCIIのみのバイトにエンコードするため、そのコーデックを使用してデータをデコードできます。
encoded = base64.encodestring(b'data to be encoded')
data['bytes'] = encoded.decode('ascii')