Python读取配置文件报错:AttributeError 'list'对象无get属性
解决AttributeError: 'list' object has no attribute 'get'问题
嘿,我一眼就揪出问题所在啦!你遇到的这个错误,根源是对SimpleConfigParser的read()方法返回值理解错了。
错误原因分析
你代码里这行:
self.config_file = config_parser.read('config.ini')
这里的read()方法返回的是成功读取的配置文件路径列表,而不是配置解析器对象本身。所以当你后续调用self.config_file.get(...)时,本质是在给一个列表调用get()方法,自然会抛出AttributeError。
另外还有个小细节问题:你初始化了self.config_parser,但调用read()的时候漏加了self.,这会导致NameError(如果没提前定义全局的config_parser的话)。
修正后的代码
import simpleconfigparser class ReportGenerator: def __init__(self): self.config_parser = simpleconfigparser.configparser() # 调用read方法加载配置,不需要把返回值存起来(返回的是文件路径列表) self.config_parser.read('config.ini') # 直接用config_parser实例来调用get方法 self.connection_attempts = self.config_parser.get('CONNECTION_ATTEMPTS', 'TIME') self.connection_timeout = self.config_parser.get('CONNECTION_TIMEOUT', 'TIMEOUT') self.report_destination_path = self.config_parser.get('REPORT', 'REPORT_PATH')
额外提醒
确保你的config.ini格式符合要求,要有对应的section和键值对,比如:
[TIME] CONNECTION_ATTEMPTS=3 [TIMEOUT] CONNECTION_TIMEOUT=10 [REPORT] REPORT_PATH=./reports
这样修改后,应该就能正常读取配置啦!
内容的提问来源于stack exchange,提问作者sanna
相关产品推荐
相关产品推荐

