es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué estoy recibiendo un KeyError al leer un archivo ini con el configparser de Python?

Me gustaría conectarme a la base de datos en Python.
Mi código:

from configparser import ConfigParser
import pymysql as mysql

class DatabaseG:
    def __init__(self):
        config = ConfigParser()
        config.read("config.ini")
        self.connection = mysql.connect(
                user=config["books"]["user"],
                passwd=config["books"]["password"],
                host=config["books"]["host"],
                db=config["books"]["database"],
        )
        self.cursor = self.connection.cursor()
        query = """
                CREATE TABLE BOOKS (book_url TEXT, book_id)
                """

        self.cursor.execute(query)

db = DatabaseG()

Mi archivo config.ini se ve así:

[books]
user=myuser
password=mypass
host=blabla.cz
database=

Pero obtuve un error KeyError: 'user'. ¿Qué significa? ¿El usuario no existe?

Toda la traza:
Traceback (most recent call last):
File "<input>", line 259, in <module>
File "<input>", line 205, in main
File "/home/vojtam/Desktop/mydb/db.py", line 25, in __init__
user=config["books"]["user"],
File "/usr/lib/python3.8/configparser.py", line 960, in __getitem__
raise KeyError(key)
KeyError: 'user'

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error KeyError: 'user' significa que la clave ‘user’ no existe en la sección ‘[books]’ del archivo config.ini, donde se está intentando acceder. Esto podría indicar que hay un error de escritura en el nombre de la clave, o que la sección y la clave no han sido definidas en el archivo config.ini. Revise nuevamente los nombres de las claves y asegúrese de que la sección y la clave estén definidas correctamente en el archivo ini.

Comments are closed.