gpt4 book ai didi

python - 为什么在使用 json.dumps 时 python dict 的 int 键会变成字符串?

转载 作者:IT老高 更新时间:2023-10-28 12:50:49 28 4
gpt4 key购买 nike

根据this conversion table ,当使用 JSON 模块进行序列化时,Python 整数会被写为 JSON 数字——正如我所期望的那样。

我有一个带有整数键和整数值的字典:

>>> d = {1:2}
>>> type(d.items()[0][0])
<type 'int'>
>>> type(d.items()[0][1])
<type 'int'>

当我使用json模块将这个序列化为JSON字符串时,值写成数字,而key写成字符串:

>>> json.dumps(d)
'{"1": 2}'

这不是我想要的行为,而且它似乎特别糟糕,因为它打破了 json.dumps/json.loads 往返:

>>> d == json.loads(json.dumps(d))
False

为什么会发生这种情况,有没有办法可以强制将 key 写为数字?

最佳答案

原因很简单,JSON does not allow integer keys.

object
{}
{ members }
members
pair
pair , members
pair
string : value # Keys *must* be strings.

关于如何绕过这个限制 - 您首先需要确保接收实现可以处理技术上无效的 JSON。然后,您可以替换所有引号或使用自定义序列化程序。

关于python - 为什么在使用 json.dumps 时 python dict 的 int 键会变成字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17099556/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com