【发布时间】:2018-02-22 13:49:33
【问题描述】:
我想将字典转换为 JSON 字符串,其中布尔值 True 转换为数字 1,布尔值 False 值转换为数字 0。我正在使用JSONEncoder 子类,但它似乎忽略了布尔值...
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 子类获得我想要的结果?
【问题讨论】:
标签: python json python-3.x encoder