[pyar] Insertar Ñ con Django en PostgreSQL

Carlos Joel Delgado Pizarro carlosj2585 en gmail.com
Mie Sep 12 19:12:04 ART 2012


Ya lo corregí.... el problema era que la BD original es una MSSQL y 
estaba en Latin1, y quería insertar a PostgreSQL en UTF-8.
con un .decode('utf8') lo arreglé, a parte que en la BD  original la Ñ 
era una Ð, y tu ve que cambiar manualmente ese detalle y funcionó todo.



El 12/09/12 16:30, Carlos Guerrero escribió:
> Hola Tocayo,
>
> Cómo probaste haciendo el insert into? segun el error que tienes:
> "value too long for type character varying(1)"
>
> Parece que es un asunto de como tienes definido ese campo en base de datos[0]
>
> Prueba aumentando la longitud de los demas campos a los que estas intentando hacer el insert[1]
>
>
>
> [0]http://www.postgresql.org/docs/8.0/static/datatype-character.html
> [1]http://stackoverflow.com/questions/7747922/value-too-long-for-type-character-varyingn
>
>
>
> Saludos Cordiales.
>
>
> 2012/9/12 Carlos Joel Delgado Pizarro <carlosj2585 en gmail.com 
> <mailto:carlosj2585 en gmail.com>>
>
>     Buenas tardes,
>     tengo un pequeño problema al importar datos a PostgreSQL,
>     utilizando Django.
>     Tengo un archivo de texto con columnas de ancho fijo, que tiene
>     los datos extraidos de ms-sql, una de las líneas tiene la palabra
>     «CAÑETE» (que es la que me está dando problemas)
>
>     En el models.py tengo el campo
>
>     # -*- coding: utf-8 -*-
>     # codigo codigo codigo
>     class Unit(models.Model)
>         # mas campos
>         name = models.CharField(max_length=30, verbose_name='Nombre')
>     # mas campos
>
>     Tengo un script import_data.py que lee los datos desde el archivo
>     de texto
>
>     # -*- coding: utf-8 -*-
>     #codigo codigo
>
>     def import_unit_data():
>         #codigo codigo
>         unit = Unit()
>     # mas campos
>     unit.name <http://unit.name> = line[35:66].strip()
>     # mas campos
>         unit.save()
>
>     si hago un print unit.name <http://unit.name> sale:
>     >>>    CAÑETE
>     Osea que python/django reconoce la Ñ correcta.
>     Cuando llamo a ese módulo import_unit_data() desde Django, importa
>     todos los datos sin problemas hasta que llega a esa línea sale un
>     error.
>     Exception Type: 	DatabaseError
>     Exception Value: 	
>
>     value too long for type character varying(1)
>
>     Exception Location:
>     /usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py
>     in execute, line 52
>
>     Y este es el detalle
>
>    52.
>
>                      return self.cursor.execute(query, args)
>
>         ...
>
>     ?Local vars <http://localhost:8000/beneficiarios/importar/#>
>     Variable 	Value
>     query 	
>
>     'INSERT INTO "unit" ("code", "name", "abrev") VALUES (%s, %s, %s)'
>
>     self 	
>
>     <django.db.backends.postgresql_psycopg2.base.CursorWrapper object at 0x7f979c043890>
>
>     args 	
>
>     ('9997',
>       'CA\xc3\x91ETE',
>       'CA\xc3\x91ETE')
>
>     e 	
>
>     DataError('value too long for type character varying(1)\n',)
>
>
>     la Ñ se convierte en \xc3\x91
>     Probé haciendo un insert into directamente en PostgreSQL y normal
>     todo, no bota error.
>     si python reconoce la Ñ, Postgres también reconoce la Ñ.... ¿cómo
>     puedo arreglar esto?
>     Probé esto
>     http://darkchicles.wordpress.com/2009/04/15/cambiar-la-codificacin-de-caracteres-en-postgres/
>     pero tampoco me ayuda...
>
>     -- 
>     Saludos.
>
>     Carlos Joel Delgado Pizarro
>     Consultor TI-FLOSS
>     http://carlosjdp.info
>     http://gplus.to/carlosj2585
>     Linux User Registered #460895
>     Ubuntu User Registered #28720
>
>
>     _______________________________________________
>     pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
>     http://listas.python.org.ar/listinfo/pyar
>
>     PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>     La lista de PyAr esta Hosteada en USLA - Usuarios de Software
>     Libre de Argentina - http://www.usla.org.ar
>
>
>
>
> -- 
> Atte:
> Carlos A. Guerrero M.
> http://www.carlosguerrero.com
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar


-- 
Saludos.

Carlos Joel Delgado Pizarro
Consultor TI-FLOSS
http://carlosjdp.info
http://gplus.to/carlosj2585
Linux User Registered #460895
Ubuntu User Registered #28720

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120912/4dd8eb5f/attachment.html>


More information about the pyar mailing list