我想將字典轉換爲JSON字符串,其值爲布爾值True
,將值翻譯爲1
,將布爾值False
的值翻譯爲0
。我使用的是JSONEncoder
子類,但它似乎忽略布爾...爲什麼我的自定義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)
我想這是結果:
{"key-true": 1, "key-a": "a", "key-false": 0}
然而,這是我所得到的:
{"key-true": true, "key-a": "a", "key-false": false}
我知道我可以在將它傳遞給json.dumps
之前以編程方式修改數據,但是有什麼方法可以通過JSONEncoder
子類獲得我想要的結果嗎?
答覆接受,謝謝。 – HippoMan