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

Python中API响应JSON数据赋值变量时报TypeError的解决方法

问题原因

你收到的报错

TypeError: list indices must be integers or slices, not str

核心原因是JSON返回结构中,results和locations两个字段都是数组类型,对应Python中的列表结构,列表只能用整数下标或者切片访问,不能直接传入字符串作为索引。

正确提取代码

如果你确定只需要取返回的第一个查询结果、第一个匹配地点的纬度值,补全列表下标即可:

locationLat = json_data["results"][0]["locations"][0]["latLng"]["lat"]
多结果适配方案

如果接口可能返回多个查询结果、或者一个结果匹配多个地点,建议通过遍历的方式提取所有纬度值,避免下标越界或者漏取数据:

lat_list = []
# 遍历所有查询结果
for res in json_data["results"]:
    # 遍历单个结果下的所有匹配地点
    for loc in res["locations"]:
        lat_list.append(loc["latLng"]["lat"])

需要取第一个纬度时直接访问lat_list[0]即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:04