调用API解析JSON遇TypeError:列表索引需为整数或切片而非字符串
错误解释与问题分析
错误含义
TypeError: list indices must be integers or slices, not str 翻译成中文是:类型错误:列表的索引必须是整数或切片,不能使用字符串。
问题原因
你的代码中 data[1]['layout'] 这一步出现了问题:data[1] 返回的是一个列表(list),而非你预期的字典(dict)。列表只能用整数(比如0、1)或者切片(比如1:3)来访问元素,你用字符串'layout'去索引列表,Python就会抛出这个错误。
解决方案
- 先打印返回的完整数据结构,明确每个层级的类型:
import requests import json raw = requests.get("https://services.api.no/api/ordino/frontpage/retten/11-5881f97a8e5dac09a5e6e8a1/wide/legacy") data = raw.json() # 格式化打印数据,方便查看层级结构 print(json.dumps(data, indent=2)) - 根据打印结果,找到包含
layout字段的字典所在位置,调整索引逻辑。比如如果layout在data[1]的某个列表元素中,需要先通过整数索引定位到该元素,再用字符串键访问layout。
内容的提问来源于stack exchange,提问作者PlainB4
相关产品推荐
相关产品推荐

