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

Flask项目多脚本复用config.ini配置文件出现索引错误的解决问询

问题解决:Flask中复用ConfigParser配置加载代码

错误原因

你在config.py的loadConfig函数中返回的是configData.read(config_path)的结果,而ConfigParser.read()方法返回的是成功读取的配置文件路径列表,并非ConfigParser实例本身。所以在views.py中configData是一个列表,使用字符串索引['Section']['Key']自然会抛出list indices must be integers or slices, not str错误。

修正方案(推荐模块级复用)

直接在config.py模块级别初始化配置对象,第一次导入时就完成加载,后续所有导入都复用同一个配置实例,更高效:

# config.py
import pathlib
import configparser

# 初始化配置解析器
config = configparser.ConfigParser()
# 获取config.ini的绝对路径
config_path = pathlib.Path(__file__).parent.absolute() / "config.ini"
# 读取配置文件
config.read(config_path)

在views.py中直接导入这个配置对象即可使用:

# views.py
from Project.modules.config import config

print(config['Section']['Key'])

保留函数式的修正方式

如果坚持使用函数加载的方式,只需修改loadConfig函数,返回ConfigParser实例而非read方法的结果:

# config.py
import pathlib
import configparser

def loadConfig():
    configData = configparser.ConfigParser()
    config_path = pathlib.Path(__file__).parent.absolute() / "config.ini"
    configData.read(config_path)
    return configData  # 返回配置解析器对象

调用时:

# views.py
from Project.modules import config

configData = config.loadConfig()
print(configData['Section']['Key'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:57:29