根据这个转换表,当使用 JSON 模块进行序列化时,Python 整数会被写为 JSON 数字——正如我所期望和希望的那样。
我有一个带有整数键和整数值的字典:
>>> d = {1:2}
>>> type(d.items()[0][0])
<type 'int'>
>>> type(d.items()[0][1])
<type 'int'>
当我使用 json 模块将其序列化为 JSON 字符串时,值被写为数字,但键被写为字符串:
>>> json.dumps(d)
'{"1": 2}'
这不是我想要的行为,而且它似乎特别糟糕,因为它打破了 json.dumps/json.loads 往返:
>>> d == json.loads(json.dumps(d))
False
为什么会发生这种情况,有没有办法可以强制将密钥写为数字?