Python3数据库应用中configparser报KeyError: 'connect'问题求助
解决configparser的KeyError: 'connect'问题
你遇到的KeyError: 'connect'是因为使用configparser时,直接给不存在的section赋值导致的。必须先创建对应的section,才能往里面添加键值对。另外你的配置读取逻辑也有问题,只是打印了文件对象,没有实际加载配置。
修正后的代码如下:
import configparser import os config = configparser.ConfigParser() ini_file = "main.ini" if os.path.exists(ini_file): # 加载已存在的配置文件 config.read(ini_file) # 可在这里验证或使用配置,示例:打印主机地址 print(f"已加载配置,主机地址:{config['connect']['host']}") else: # 创建connect section config.add_section('connect') # 获取用户输入 host = input("Hostname... ") user = input("Username... ") pwrd = input("Password... ") base = input("Basename... ") # 写入配置项 config['connect']['host'] = host config['connect']['user'] = user config['connect']['pass'] = pwrd config['connect']['base'] = base # 保存到文件 with open(ini_file, "w") as info: config.write(info) print("配置文件已生成")
关键修改点:
- 提前初始化
config对象,避免重复创建 - 读取配置时使用
config.read(ini_file)加载文件内容,而非直接打印文件对象 - 在写入配置前,通过
config.add_section('connect')创建对应的section,解决KeyError问题 - 提取文件名到变量
ini_file,便于后续维护
运行修正后的代码,当main.ini不存在时,会引导你输入配置并生成文件;文件存在时则会加载并读取配置。
内容的提问来源于stack exchange,提问作者wrichards853
相关产品推荐
相关产品推荐

