Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Problema creando consultas en el banco de datos (librerias SQL no responden)

Gracias @Erikabellidoalarcon por la ayuda, me sirvió mucho la solución planteada, porque me permitió configurar las variables para poder hacer la consulta posteriormente, pero cuando hago la cosulta como tal, utilizando "engine" me genera un error; sin embargo importé la libreria "sqlite3" y con eso pude resolver hasta poder lograr la consulta de un string con :

  • from sqlite3 import connect
  • conn = connect(':memory:')
  • matriculas_por_curso.to_sql(name='test_data', con=conn)
  • query = 'select * from test_data where Total < 20'
  • pd.read_sql(query, conn)

Hasta aquí está bien, me da el resultado esperado; cuando continúo con la clase debo hacer otra consulta con el método:

  • pd.read_sql_table(table_name='test_data',con=conn, columns='Total')

y me genera el error nuevamente, lo que no me permite avanzar con la clase, esto es una situación desesperante, je, je, porque se supone que debería dar el resultado. El error es que no consigue un atributo o no consigue un valor de alguna variable atribuida a la carga en SQL., el código del error es el siguiente:


AttributeError Traceback (most recent call last) in <cell line: 1>() ----> 1 pd.read_sql_table(table_name='test_data',con=conn, columns='Total')

/usr/local/lib/python3.10/dist-packages/pandas/io/sql.py in read_sql_table(table_name, con, schema, index_col, coerce_float, parse_dates, columns, chunksize) 284 # error: Item "SQLiteDatabase" of "Union[SQLDatabase, SQLiteDatabase]" 285 # has no attribute "read_table" --> 286 table = pandas_sql.read_table( # type: ignore[union-attr] 287 table_name, 288 index_col=index_col,

AttributeError: 'SQLiteDatabase' object has no attribute 'read_table'

3 respuestas
solución!

Caso resuelto, no sé como eliminar el tópico. Por favor, cerrar la pregunta

Holaa! :D

El error que estás pasando se debe porque estás usando la función pd.read_sql_table con una conexión SQLite. La función pd.read_sql_table es específica para SQLAlchemy y no es compatible con conexiones SQLite directas.

Si deseas leer una tabla completa o ciertas columnas de una tabla usando SQLite y pandas, puedes hacerlo de la siguiente manera:

pd.read_sql('SELECT Total FROM test_data', conn)

Si este post te ayudó, por favor, marca como solucionado ✓.

Erikabellidoalarcon,

Buen día, muy agredecido nuevamente con su respuesta. Ya cambié el nuevo código y está funcionando, parece que el lenguaje de python siempre está evolucionando.