如何用Python的for循环遍历多JSON文件并访问指定对象属性
解决Python遍历JSON文件访问assigned_object['name']的KeyError问题
你的错误是因为错误地将assigned_object["name"]作为单个键去访问,正确的做法是逐层访问嵌套字典:先获取assigned_object对应的子字典,再从中提取name字段。
以下是完整的实现代码:
import os import json # 遍历当前目录下所有JSON文件 for filename in os.listdir('.'): if filename.endswith('.json'): with open(filename, 'r', encoding='utf-8') as file: try: json_data = json.load(file) # 正确访问嵌套属性:先取assigned_object,再取name device_name = json_data['assigned_object']['name'] print(f"{filename}: {device_name}") except KeyError as err: print(f"{filename} 缺失必要键:{err}") except json.JSONDecodeError: print(f"{filename} 不是有效的JSON文件")
关键说明:
- 筛选JSON文件:通过
endswith('.json')确保只处理目标文件,避免遍历无关文件 - 安全读取文件:使用
with上下文管理器自动关闭文件,无需手动处理资源释放 - 嵌套字典访问:必须分两步获取值,不能直接用
data['assigned_object["name"]']这种错误写法 - 异常处理:捕获
KeyError处理结构不匹配的情况,捕获JSONDecodeError处理文件损坏或格式错误的情况
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

