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

Python中按索引提取JSON数据的方法及报错解决方案

报错原因

你写的[0,9]语法在Python中会被自动识别为元组(0,9),而json['data']是列表类型,仅支持整数或切片作为索引,因此触发类型错误。
另外data数组中的每个元素是字典结构,即使你想按字段顺序取值,也不能直接对字典用数字索引访问,Python字典不支持这种写法。

正确访问方案

推荐方案(按字段名访问,稳定性最高)

接口返回的字段顺序可能出现变动,直接用字段名取值不会受顺序影响,是兼容性最好的写法:

url = 'my_url'
access_token = 'my_token'

result = requests.get(url,headers={'Content-Type':'application/json','Authorization': 'Bearer {}'.format(access_token)})
json_data = result.json() # 注意不要用json作为变量名,会和内置json模块冲突
# 先取data列表的第一个元素,再直接取name字段的值
company = json_data['data'][0]['name']
print(company)

注意:不要用json作为变量名,会覆盖Python内置的json模块,后续如果要调用json模块的方法会报错。

特殊场景方案(按字段位置索引访问)

如果你的场景必须按字段的排序位置取值,可以先将字典的键转为列表,再按索引取对应字段名后取值:

first_item = json_data['data'][0]
# 先拿到按顺序排列的所有字段名列表,取索引为9的字段名,再用字段名取值
name = first_item[list(first_item.keys())[9]]
通用提取逻辑
  • 第一步:通过json_data['data']获取所有实例组成的列表
  • 第二步:用[索引值]取列表中对应位置的单条实例,索引从0开始计数,比如[0]是第一条,[1]是第二条
  • 第三步:提取单条实例的指定信息:
    • 常规场景:直接用['字段名']访问对应值,无需关注字段顺序,稳定性最高
    • 需按索引取值的场景:先通过list(实例.keys())拿到按顺序排列的字段名列表,取对应索引的字段名后,再用字段名访问对应值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:06:03