You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中JSON序列化反序列化后如何将字典键转为整数?

将JSON读取后的字符串键转为整数的简便方法

方法一:字典推导式(最直接)

加载字典后,用字典推导式遍历所有键值对,将字符串键转为整数:

# 先修正文件打开的错误写法
fi = open("test.json", "r")
g = json.load(fi)
fi.close()

# 转换键为整数类型
g = {int(k): v for k, v in g.items()}

方法二:加载时用object_hook处理(一步到位)

可以在json.load时指定object_hook参数,直接在加载过程中转换键类型,省去后续处理步骤:

def convert_keys_to_int(obj):
    # 仅处理字典类型,避免影响列表等其他数据结构
    if isinstance(obj, dict):
        return {int(k): v for k, v in obj.items()}
    return obj

fi = open("test.json", "r")
g = json.load(fi, object_hook=convert_keys_to_int)
fi.close()

补充说明

  • JSON格式本身不支持整数作为键,所有非字符串键在序列化时都会被转为字符串,因此反序列化后需要手动转换回原类型。
  • 若存在无法转为整数的键,上述代码会抛出ValueError,可根据实际需求添加异常处理逻辑。

内容的提问来源于stack exchange,提问作者The Dare Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:42:01