遍历目录JSON文件时调用load方法触发AttributeError问题求助
解决加载JSON文件时的AttributeError问题
嘿,这个问题其实是个很容易犯的变量命名小失误!咱们来一步步拆解:
错误原因
你循环里的变量名是json_file,它本质上是一个字符串类型的文件名,但你却试图调用它的load()方法——这就好比你拿着文件名文本去当工具用,肯定会报错AttributeError: 'str' object has no attribute 'load'。真正应该调用的是Python标准库中json模块提供的load()方法。
修正后的代码
首先确保你已经导入了json模块,然后修改变量名避免和模块名冲突,同时正确调用模块方法:
import json # 假设backup_folder是pathlib.Path类型的对象 for filename in file_list: file_path = backup_folder.joinpath(filename) with open(file_path, 'r', encoding='utf-8') as f: # 这里用的是json模块的load方法,不是文件名变量! json_loaded_data = json.load(f) date = json_loaded_data['tradeDate']
额外注意事项:你的示例JSON有语法错误
你提供的示例JSON末尾多了一个多余的闭合大括号},这会导致加载时出现JSON解析错误。修正后的正确JSON应该是:
{ "settlements": [ { "month": "MAR 19", "open": "2.650", "high": "2.744", "low": "2.638", "last": "2.647", "change": "+.059", "settle": "2.642", "volume": "225,563", "openInterest": "250,706" } ] }
另外要注意:如果你的JSON文件里实际包含tradeDate字段才能正常获取date值,示例里没看到这个字段,记得确认文件内容是否符合预期哦。
内容的提问来源于stack exchange,提问作者Michael Wentz
相关产品推荐
相关产品推荐

