Python - AttributeError: 'psycopg2.extensions.connection' object has no attribute 'query'

 
Vista:
sin imagen de perfil
Val: 246
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

AttributeError: 'psycopg2.extensions.connection' object has no attribute 'query'

Publicado por Roberto Matarrita (106 intervenciones) el 25/10/2017 07:01:48
Buenas noches.
Estoy tratando de aprender a realizar reportes en python, ya que el mismo no tiene un reporteador propio y me es muy urgente aprender a realizar reportes con cortes de control. Estoy tratando de implementar pandas, he visto como es la filosofía del mismo y estoy haciendo un ejemplo que encontré en internet, pero me da un error y me gustaría me ayudaran a ver de que se trata. El código es para enviar a excel. Pero de igual manera para otro ejemplo me da el mismo error, que se describe después del código expuesto.


1
2
3
4
5
6
7
8
9
10
11
12
import psycopg2 as pg
import pandas as pd
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
 
 
bd=pg.connect("dbname=municipal user=postgres password = Administra8080")
datos=bd.query('SELECT * FROM usuarios')
 
if datos.getresult():
 
  dframe = pd.DataFrame(datos.getresult(), columns=datos.listfields())
  dframe.to_excel('miarchivo.xls',index=False)


Traceback (most recent call last):
File "pandaspostgresql3", line 7, in <module>
datos=bd.query('SELECT * FROM usuarios')
AttributeError: 'psycopg2.extensions.connection' object has no attribute 'query'

Solicito la ayuda de ustedes.

Gracias.

Roberto
Costa Rica.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

AttributeError: 'psycopg2.extensions.connection' object has no attribute 'query'

Publicado por xve (1646 intervenciones) el 25/10/2017 08:18:26
Hola Roberto, tal como te indica el error, no existe el atributo "query"

La manera correcta segun la documentación (https://wiki.postgresql.org/wiki/Psycopg2_Tutorial) es:
1
2
3
4
5
6
7
8
9
10
11
12
import psycopg2
 
try:
    conn = psycopg2.connect("dbname='template1' user='dbuser' host='localhost' password='dbpass'")
except:
    print "I am unable to connect to the database"
cur = conn.cursor()
cur.execute("""SELECT datname from pg_database""")
 
rows = cur.fetchall()
for row in rows:
    print "   ", row[0]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 246
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

AttributeError: 'psycopg2.extensions.connection' object has no attribute 'query'

Publicado por Roberto Matarrita (106 intervenciones) el 25/10/2017 20:11:32
Perfecto amigo, voy a revisar la documentación y te viso como me fue.
De paso una consulta. Has trabajado alguna ves, el reporteador Pentaho y lo has podido pegar a Python.

Si en la búsqueda, como hacer reportes en python y presentarlos en pantalla, agradezco cualquier ayuda.

Roberto
Costa Rica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

AttributeError: 'psycopg2.extensions.connection' object has no attribute 'query'

Publicado por rahul (1 intervención) el 25/08/2018 16:21:16
you need to use execute or executemany method to run SQL queries. refer this guide https://pynative.com/python-postgresql-tutorial/

Exanple

1
2
3
4
5
6
7
8
9
10
11
12
13
14
   #db connection code
   bd = pg.connect ( "dbname = municipal user = postgres password = Administra8080" )
 
   Query = "select  * from users"
 
   cursor = bd.cursor()
 
   cursor.execute(Query)
   # use fetchall method to fetch all the rows from database table
   records = cursor.fetchall()
 
   print ("Displaying rows from  table using cursor.fetchall")
   for row in records:
       print (row)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar