Re: Importar fichero CSV

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()

>

--
http://www.advogato.org/person/mgonzalez/

In response to

Responses

Browse pgsql-es-ayuda by date

  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