From: | "Mario Gonzalez" <gonzalemario(at)gmail(dot)com> |
---|---|
To: | "Guido Barosio" <gbarosio(at)gmail(dot)com> |
Cc: | Javier Estévez CIFA Córdoba <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>, "Javier Carlos" <javier(at)nediam(dot)com(dot)mx>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Importar fichero CSV |
Date: | 2007-03-30 13:27:38 |
Message-ID: | 2065a6cf0703300627m660ae6e9q2a9c055d3c1548e5@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 30/03/07, Guido Barosio <gbarosio(at)gmail(dot)com> wrote:
> Mario,
>
> El problema lo tiene igual, porque el asunto no pasa por como hacer
> el COPY, sino por la cantidad de columnas por fila. COPY no maneja eso
> dinamicamente, simplemente espera por STDIN o un archivo lineas con
> una cantidad predeterminada de columnas (que justamente coincide con
> la definicion de la tabla creo?).
>
Estructura Tabla
******************
test=> \d copy_example
Tabla «public.copy_example»
Columna | Tipo | Modificadores
---------+---------+---------------
num1 | integer |
num2 | integer |
num3 | integer |
Archivo
********
mario(at)mario:~$ more archivo_csv
1,2,3
4,5,6
7,8,9
Codigo python:
*****************
from psycopg import connect
con = connect("host=myhost user=usuario password=password dbname=test")
cursor = con.cursor()
for lineas in open("archivo_csv").readlines():
_list = lineas.split(",")
num3 = _list.pop()
num2 = _list.pop()
num1 = _list.pop()
sql = """
INSERT INTO copy_example (num2, num3)
VALUES (%s, %s)
""" % (num2, num3)
cursor.execute( sql )
con.commit()
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-03-30 13:39:05 | Re: Importar fichero CSV |
Previous Message | Raúl Mero Moreira | 2007-03-30 13:19:46 | Re: Importar fichero CSV |