He estado leyendo todas las preguntas con respecto a la conversión de Unicode a CSV en Python aquí en StackOverflow y todavía estoy perdido. Cada vez que recibo un "UnicodeEncodeError: códec 'ascii' no puede codificar caracteres u '\ xd1' en la posición 12: no ordinal en el rango (128)"Python: Convertir Unicode en ASCII sin errores para el archivo CSV
buffer=cStringIO.StringIO()
writer=csv.writer(buffer, csv.excel)
cr.execute(query, query_param)
while (1):
row = cr.fetchone()
writer.writerow([s.encode('ascii','ignore') for s in row])
El valor de fila es
(56, u"LIMPIADOR BA\xd1O 1'5 L")
donde el valor de \ xd10 en la base de datos es ñ, con una tilde diacrítica utilizada en español. Al principio traté de convertir el valor a algo válido en ASCII, pero después de perder tanto tiempo trato de ignorar a esos personajes (supongo que tendría el mismo problema con las vocales acentuadas).
Me gustaría guardar el valor en el archivo CSV, preferiblemente con el ñ ("LIMPIADOR BAÑO 1'5 L"), pero si no es posible, al menos poder guardarlo ("LIMPIADOR BAO 1'5 L ").
¿Cuál es tu pregunta? –
Actualizado con una pregunta al final. – Sergi
¿Por qué no intentas codificar en la página de códigos 'ANSI' de Windows? Supongo que estás usando Windows porque CSV es el más comúnmente utilizado en Windows, pero por favor ignórame si esto no es suficiente. En un SO * NIX creo que una de las codificaciones ISO de 8 bits sería apropiada, pero no soy un experto. –