Я прочитал все вопросы о преобразовании из Unicode в CSV в Python здесь, в StackOverflow, и я все еще потерян. Каждый раз, когда я получаю сообщение "UnicodeEncodeError: кодек ascii не может кодировать символ u'\xd1' в позиции 12: порядковый номер не в диапазоне (128)"
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])
Значение row равно
(56, u"LIMPIADOR BA\xd1O 1'5 L")
где значение \xd10 в базе данных равно ñ, n с диакритической тильдой, используемой в испанском языке. Сначала я попытался преобразовать значение во что-то действительное в ascii, но, потеряв столько времени, я пытаюсь игнорировать только эти символы (полагаю, у меня была бы такая же проблема с гласными с ударением).
Я хотел бы сохранить значение в CSV, предпочтительно с ñ ("LIMPIADOR BAÑO 1'5 L"), но если это невозможно, по крайней мере иметь возможность сохранить его ("LIMPIADOR BAO 1'5 L").