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

Python访问嵌套字典key报string indices must be integers错误如何解决

报错原因

  • 你加载得到的data中,键b对应的值是JSON格式的字符串,而非嵌套字典。json.load()只完成了外层JSON的解析,data['b']仍然为字符串类型,字符串仅支持整数作为下标取值,直接用键date1访问自然触发类型错误。

修复方法

对data['b']单独执行一次JSON反序列化即可,修正后的代码如下:

import json

# 注意:原代码中open的文件名是字符串类型,需要加引号包裹
jsonfile = open("file.json", "r")
data = json.load(jsonfile)
jsonfile.close()

# 解析b对应的JSON字符串为字典
b_content = json.loads(data['b'])
date = b_content['date1']

如果要从根源避免该问题,生成原始JSON文件时,不要把b对应的字典转成字符串再存入,直接作为嵌套对象写入即可,后续只需一次json.load就能解析出完整的嵌套字典结构。


内容的提问来源于stack exchange,提问作者viki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:48:01