programing

TypeError를 송신하는 JSON?json.dumps()의 바이트 부호화 방법

procenter 2023. 3. 16. 23:48
반응형

TypeError를 송신하는 JSON?json.dumps()의 바이트 부호화 방법

바이트 문자열이 포함된 사전을 인코딩하려고 합니다.json, 및 를 취득합니다.is not JSON serializable error:

import base64
import json

data = {}
encoded = base64.b64encode(b'data to be encoded')
data['bytes'] = encoded

print(json.dumps(data))

표시되는 오류:

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

바이트를 포함한 사전을 JSON으로 올바르게 인코딩하려면 어떻게 해야 합니까?

JSON 형식은 Unicode 문자열만 지원합니다.는 바이트를 ASCII 전용 바이트로 인코딩하기 때문에 이 코덱을 사용하여 데이터를 디코딩할 수 있습니다.

import base64

encoded = base64.b64encode(b'data to be encoded')  # b'ZGF0YSB0byBiZSBlbmNvZGVk' (notice the "b")
data['bytes'] = encoded.decode('ascii')            # 'ZGF0YSB0byBiZSBlbmNvZGVk'

는 바이트뿐만 아니라 ASCII 전용 문자열도 처리하기 때문에 원래 데이터를 다시 바이트로 인코딩할 필요가 없습니다.

decoded = base64.b64decode(data['bytes'])  # b'data to be encoded'

언급URL : https://stackoverflow.com/questions/40000495/how-to-encode-bytes-in-json-json-dumps-throwing-a-typeerror

반응형