Re: como cambiar el separador decimal en una sentencia copy ?

From: Martín Marqués <martin(dot)marques(at)gmail(dot)com>
To: Kernel <jucabapa(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: como cambiar el separador decimal en una sentencia copy ?
Date: 2013-09-18 00:38:48
Message-ID: 5238F618.3060705@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 06/09/13 14:09, Kernel escribió:
> Hola,
> estoy intentando cargas datos de un fichero csv, el cual utiliza como
> separador decimal la coma ,
> ¿ hay alguna manera de preparar la session actual o introducir algo en
> la sentencia para que lo interprete bien?
>
>
>
> Estoy utilizando :
> copy prueba from '/u/DATOS.CSV'
> WITH DELIMITER ','
> CSV HEADER
> ENCODING 'LATIN9'
>
> Datos :
>
>
> "0,00","7.184,32","","","576,00","806,39"

Porque no arreglas el archivo CSV con script?

Esto me salio en un rato de ocio, no es bonito, pero es efectivo. ;)

def swapDotComa(line):
""" Search for a coma inside doble quoted words and change it to dot.
this may be used to change LATIN , used in decimal for . used in
American notation."""

# We start outside a doble quote
quoted = False
line = list(line)
for i in range(len(line)-1):
if line[i]== '"':
quoted = not quoted
elif quoted and line[i]==',':
line[i] = '.'
elif quoted and line[i]=='.':
line[i] = ','
return ''.join(line)

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Roberto Andrade Fonseca 2013-09-18 22:39:24 1a Reunión de Usuarios de Linux y PostgreSQL en el Bajío. México.
Previous Message Alvaro Herrera 2013-09-17 20:25:55 Re: Funcionamiento Vacuum