[pyar] Problemas obteniendo resultados non-ascii con SQLAlchemy en Python 3

Claudio Freire klaussfreire en gmail.com
Lun Abr 28 17:32:03 ART 2014


2014-04-28 17:27 GMT-03:00 Emiliano Dalla Verde Marcozzi
<edvm en fedoraproject.org>:
> Buenas lista!,
> Estoy haciendo una query que pide el nombre de un espectaculo (show) y
> teniendo
> problemas con los caracteres non-ascii que pueden ser parte del nombre, por
> ej:
> Nombre bien:
> LA NIÑA QUE RIEGA
> Resultado que obtengo con SQLAlchemy (python3.3):
> 'LA NI?A QUE RIEGA'
>
> Los campos en el modelo están definidos así:
>     Column(u'nombre', String(length=80, convert_unicode=True)),
>     Column(u'nombre_corto', String(length=40, convert_unicode=True)),
>
> Intenté utilizar Unicode en lugar de String(convert_unicode=True) (como dice
> en:
> http://docs.sqlalchemy.org/en/rel_0_9/core/types.html#sqlalchemy.types.Unicode)
>  pero sigo teniendo el mismo error.
>
> La base de datos es Oracle y uso cx_Oracle como conector, ideas de donde
> tengo que tocar o que hacer? :-)
> Desde ya muchas gracias!


No sé con oracle, pero con mysql en general tenés que especificar el
charset en la URI de la conexión, para que el driver transmita
correctamente los valores.

También, especialmente diseñado para cuando el driver anda choto,
podés pasarle al engine el encoding como keyword:

engine = Engine(blah, encoding = 'whatever')

Para lo cual tenés que saber el encoding que se usa, para lo cual te
recomiendo hacer algunas pruebas manuales con cx_Oracle directamente.


More information about the pyar mailing list