반응형
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
반응형
'programing' 카테고리의 다른 글
스프링 캐시에서 @Cacheable 주석의 늘 값을 캐시하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.03.16 |
---|---|
Webpack, Wordpress 및 BrowserSync가 함께 작동하도록 하는 방법 (0) | 2023.03.16 |
반환된 JSON 개체 속성을 (작은 첫 번째) camel Case로 변환합니다. (0) | 2023.03.16 |
Java에서 JSONObject 쿼리 (0) | 2023.03.16 |
스프링 보안 필터 체인의 구조 (0) | 2023.03.16 |