当某些键不是字符串时,如何将Python dict转换为JSON?

副总裁

等同于Python dict的JSON是一个JSON对象。但是,它的键必须是字符串,这是众所周知的限制。

我还需要支持布尔和数字键。我可以做一个简单的Python值<-> JSON字符串一对一转换:

False <--> "bool:False"
42 <--> "int:42"
"Foo" <--> "str:Foo"

但是我想问一下是否有一些现有的建议或某种标准。简直是值得与之兼容的任何事物。

搅拌机

JSON无法做到这一点,而且我不知道任何广泛使用的JSON扩展允许您执行此操作。你必须写串行器和解串自己,这可能就不会那么困难,如果你的子类json.JSONEncoderjson.JSONDecoder

如果您能够切换协议,则可以使用支持非字符串键的JSON协议协议。MessagePack是其中之一:

>>> import msgpack
>>> msgpack.loads(msgpack.dumps({'1': 12, False: 3, 2: 8}))
{False: 3, 2: 8, '1': 12}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章