| 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: | Whole Thread | Raw Message | 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
| 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 |