[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