부울 True
값이 1
으로 변환되고 부울 False
값이 0
으로 변환 된 JSON 문자열로 사전을 변환하려고합니다. 내 사용자 지정 JSONEncoder.default()가 부울을 무시하는 이유는 무엇입니까?
import json
class MyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, bool):
return 1 if obj else 0
return super().default(obj)
data = { 'key-a' : 'a', 'key-true' : True, 'key-false' : False }
jsondata = json.dumps(data, cls=MyEncoder)
print(jsondata)
나는이 결과가되고 싶어요 ... 내가
JSONEncoder
서브 클래스를 사용하고 있지만,이 논리 값을 무시하는 것 같다 그러나
{"key-true": 1, "key-a": "a", "key-false": 0}
, 이것은 내가 무엇을 얻을 수 있습니다 :
{"key-true": true, "key-a": "a", "key-false": false}
json.dumps
으로 전달하기 전에 프로그래밍 방식으로 데이터를 수정할 수 있지만, JSONEncoder
하위 클래스를 통해 원하는 결과를 얻을 수있는 방법이 있습니까?
답변 감사합니다. – HippoMan