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

Python读取合并JSON文件遇TypeError:无法访问指定嵌套字段

解决JSON列表访问时的TypeError问题

你的combined.json是包含2个字典元素的列表,每个字典内有results数组,数组对象嵌套assigned_object.device.name字段。你之前的代码报错TypeError: list indices must be integers or slices, not str,核心原因是直接把列表类型的data当成字典来访问了。

错误原因分析

json.load(file)加载后得到的data是列表(因为JSON根结构是列表),列表只能用整数索引(比如data[0])访问元素,不能用字符串键(比如data["results"]),这就是报错的根源。

正确代码示例

import json

file_name = 'combined.json'

with open(file_name) as file:
    data = json.load(file)  # data是包含2个字典的列表

# 先遍历列表中的每个字典项
for dict_item in data:
    # 再遍历每个字典里的results数组
    for result_obj in dict_item["results"]:
        print(result_obj["assigned_object"]["device"]["name"])

代码说明

  1. 首先遍历data列表,取出每个包含results数组的字典dict_item
  2. 再遍历dict_item["results"]数组,取出每个嵌套对象result_obj
  3. 最后通过层级索引获取目标字段assigned_object.device.name

运行这段代码就能得到你期望的输出:

A-F3-G23-15-Saeed Unit15
A-F3-G23-16-Saeed Unit16

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:48:16