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

Python读取jobs.json提取IP时遇'string indices must be integers'错误求助

解决Python遍历JSON字典时的'string indices must be integers'错误

错误原因

你的data["Jobs"]是字典类型,直接用for item in data["Jobs"]遍历的话,拿到的是字典的键(比如"Carpenter"、"Electrician"这类字符串),而非包含ip字段的嵌套对象。此时执行item["ip"]相当于用字符串作为下标访问另一个字符串,Python不允许这种操作,因此抛出string indices must be integers错误。

修复方案

推荐使用with语句自动管理文件(无需手动调用close()),以下两种方式都可解决问题:

方法1:遍历键值对(保留职业名称)

import json

with open('jobs.json') as f:
    data = json.load(f)

# items()返回(key, value)元组,key是职业名,value是包含ip的对象
for job_title, job_info in data["Jobs"].items():
    print(job_info["ip"])

方法2:直接遍历值对象(仅获取IP)

如果不需要职业名称,直接用values()方法遍历字典的所有值:

import json

with open('jobs.json') as f:
    data = json.load(f)

# values()直接返回所有包含ip的嵌套对象
for job_info in data["Jobs"].values():
    print(job_info["ip"])

额外提示

你的JSON文件中地址字段存在大小写不一致的情况:两个条目是address(小写),另外两个是Address(大写)。如果后续需要访问地址字段,建议统一字段名,避免出现KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:55:23