我想将字典转换为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