等同于Python dict的JSON是一个JSON对象。但是,它的键必须是字符串,这是众所周知的限制。
我还需要支持布尔和数字键。我可以做一个简单的Python值<-> JSON字符串一对一转换:
False <--> "bool:False"
42 <--> "int:42"
"Foo" <--> "str:Foo"
但是我想问一下是否有一些现有的建议或某种标准。简直是值得与之兼容的任何事物。
JSON无法做到这一点,而且我不知道任何广泛使用的JSON扩展允许您执行此操作。你必须写串行器和解串自己,这可能就不会那么困难,如果你的子类json.JSONEncoder
和json.JSONDecoder
。
如果您能够切换协议,则可以使用支持非字符串键的JSON协议协议。MessagePack是其中之一:
>>> import msgpack
>>> msgpack.loads(msgpack.dumps({'1': 12, False: 3, 2: 8}))
{False: 3, 2: 8, '1': 12}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句