[pyar] problemas con el encoding
Mario Cassanelli
mcassan en inidep.edu.ar
Jue Oct 21 10:40:34 ART 2010
El programa en python lee una tabla con formato dbf,
y luego se inserta en una tabla de postgres,
La base de datos esta en UTF8,
Linux esta en en_US.UTF8,
el problema ocurre al insertar el registro
con.query(inserto)
y el resultado es este...estuve buscando y no he podido
resolverlo o no he comprendido las soluciones...
[mcassan en patoruzu db_especies]$ ./cargo_especies.py
0 Abadejo Abadejo
1 Anchoa de banco Anchoa de banco
2 Ancho�ta Ancho�ta
Traceback (most recent call last):
File "./cargo_especies.py", line 78, in <module>
con.query(inserto)
pg.ProgrammingError: ERROR: invalid byte sequence for encoding "UTF8": 0xa1
HINT: This error can also happen if the byte sequence does not match the
encoding expected by the server, which is controlled by "client_encoding".
algun links que tenga que leer, algun help seran bienvenidos...
Saludos
Mario Cassanelli
Pd. nombres de las especies y el programa a continuacion....>>>>
134 Tibur�n sardinero Tibur�n sardinero
135 Tibur�n azul Tibur�n azul
136 Especies pel�gicas Especies pel�gicas
141 Calamar patag�nico Calamar patag�nico
144 Luri�n com�n Luri�n com�n
#!/usr/bin/python
# -*- coding: utf-8 -*-
from dbfpy.dbf import *
import pg
def vacio_n(n):
if n=='':
n=0
return n
return n
def vacio_s(n):
if n=='':
n='0'
return n
return n
db=Dbf('../db_auxiliares/especies_ca.dbf',True)
con=pg.connect(dbname='especies', host='localhost', user='')
con.query('delete from especiess where anio=2010')
intctos=0
intAnio=2010
intRec=59500
for i in range(min(intRec,len(db))):
print i,
rec=db[i]
nro_espc=rec["nro_espc"]
desc_espc=rec["desc_espc"]
sinonimo_1=rec["sinonimo_1"]
nmbre_cient=rec["nbre_cient"]
vigente=rec["vigente"]
tipo=rec["tipo"]
cuotas=rec["cuotas"]
variado=rec["variado"]
fao_cod=rec["fao_cod"]
fao_esp=rec["fao_esp"]
fao_nombre=rec["fao_nombre"]
pelagicas=rec["pelagicas"]
g_pelagicas=rec["g_pelagica"]
rayas=rec["rayas"]
tiburones=rec["tiburones"]
print nro_espc,desc_espc,sinonimo_1,nmbre_cient,vigente,tipo,cuotas,variado,fao_cod,fao_esp,fao_nombre,pelagicas,g_pelagicas,rayas,tiburones
inserto="insert into especiess(nro_espc, desc_espc,sinonimo_1,nbre_cient,vigente,tipo,cuotas,variado,fao_cod,fao_esp, fao_nombre, pelagicas, g_pelagicos,rayas,tiburones,anio) values(\'%s\',\'%s\',\'%s\',\'%s\',%s,\'%s\',%s,%s,\'%s\',\'%s\',\'%s\',%s,%s,%s,%s,%d)" % (nro_espc,desc_espc,sinonimo_1,nmbre_cient,vigente,tipo,cuotas,variado,fao_cod,fao_esp,fao_nombre,pelagicas,g_pelagicas,rayas,tiburones,2010)
con.query(inserto)
db.close()
con.close()
More information about the pyar
mailing list