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"])
代码说明
- 首先遍历
data列表,取出每个包含results数组的字典dict_item - 再遍历
dict_item["results"]数组,取出每个嵌套对象result_obj - 最后通过层级索引获取目标字段
assigned_object.device.name
运行这段代码就能得到你期望的输出:
A-F3-G23-15-Saeed Unit15 A-F3-G23-16-Saeed Unit16
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

