Python - Visualizar tablas desde Postgresql con Python

 
Vista:

Visualizar tablas desde Postgresql con Python

Publicado por Maria (1 intervención) el 19/09/2005 14:44:03
Hola,
me gustaría saber cual es la consulta que debo realizar para averiguar todas las tablas que existen en una base de datos en Postgresql y para ejecutarla desde Python.

He intentado a hacer:
select table_name from all_tables pero no funciona!

También querría averiguar cual es la consulta para saber cuales son los campos de una tabla determinada.

Es muy urgente,
Gracias,
Un saludo
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

RE:Visualizar tablas desde Postgresql con Python

Publicado por Ibon (1 intervención) el 01/11/2005 00:47:49
Hola,
seguro que ya habrás resuelto algo. De la primera pregunta nada, pero de la segunda te puedo mostrar como lo hago yo.

La funcion getDatos recibe un cursor y una fila. Devuelve un diccionario con un campo con el nombre de cada columna y el valor.
Como tengo campos de la bd que son array, hay una función para convertir el array bd en un array python, e insertarlo en el diccionario. ( utilzona.convCadena( dato ) ).

Lo esencial creo que es:

cols = cur.description
dicDatos = {}
c=0

try:
for col in cols:
dato = row[c]
......

Bueno... es un poco tarde. Ya se que no esta muy claro pero igual te vale. Si quieres mas info preguntame mas.


Para llamar
====================================

db = initialize()
cursor = db.cursor()
cursor.execute( sqlQuery )
row = cursor.fetchone()
zona=getDatos( cursor, row )

=========================================

#
# Devuelve un diccionario con los datos de la fila {<nombre-columna>:<datos>,...}
# cur: cursor
# row: una fila
# return diccionario nombre-columna:valor
def getDatos( cur, row ):

cols = cur.description

dicDatos = {}
c=0

try:
for col in cols:
dato = row[c]

if dato != None and type(dato)==str and dato!='' and dato[0]=='{':
# para convertir las columnas de tipo array
dato = utilzona.convCadena( dato )

dicDatos[col[0]] = dato
c=c+1
except Exception, e:
log.error( "\n ERROR getDatos: "+str(e) )

return dicDatos
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