Ich habe alle Fragen zur Konvertierung von Unicode zu CSV in Python hier in StackOverflow gelesen und bin immer noch verloren. Jedesmal, wenn ich eine receive "UnicodeEncodeError: 'ASCII' Codec nicht Zeichen kodieren, können u '\ XD1' in Position 12: ordinal nicht im Bereich (128)"Python: Konvertieren von Unicode nach ASCII ohne Fehler für CSV-Datei
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])
Der Wert von Zeile ist
(56, u"LIMPIADOR BA\xd1O 1'5 L")
wo der Wert von \ xd10 in der Datenbank ist ñ, ein mit einer diakritischen Tilde in Spanisch verwendet. Zuerst habe ich versucht, den Wert in etwas Ascii zu konvertieren, aber nachdem ich so viel Zeit verloren habe, versuche ich nur, diese Zeichen zu ignorieren (ich nehme an, ich hätte das gleiche Problem mit Akzentvokalen).
Ich möchte den Wert in der CSV speichern, vorzugsweise mit dem ñ ("LIMPIADOR BAÑO 1'5 L"), aber wenn nicht möglich, zumindest in der Lage, es zu speichern ("LIMPIADOR BAO 1'5 L ").
Was ist Ihre Frage? –
Aktualisiert mit Frage am Ende. – Sergi
Warum versuchen Sie nicht, auf Ihrer lokalen Windows-ANSI-Codepage zu codieren? Ich vermute, dass Sie Windows verwenden, da CSV am häufigsten unter Windows verwendet wird, aber ignorieren Sie mich bitte, wenn das weit von der Marke entfernt ist. Auf einem * NIX OS wäre wohl eine der 8 Bit ISO-Kodierungen angebracht, aber ich bin kein Experte. –