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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:21:40