Python: преобразование Unicode в ASCII без ошибок для файла CSV

Я читал все вопросы, касающиеся преобразования из 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])

Значение строки равно

(56, u"LIMPIADOR BA\xd1O 1'5 L")

, где значение \ xd10 в базе данных - ñ, с диакритической тильдой, используемой в испанском языке. Сначала я попытался преобразовать значение во что-то действительное в ascii, но потеряв столько времени, я пытаюсь игнорировать только эти символы (я полагаю, у меня была бы такая же проблема с гласными с ударением).

Я бы хотелось бы сохранить значение в CSV, желательно с ñ («LIMPIADOR BAÑO 1'5 L»), но если это невозможно, по крайней мере, иметь возможность сохранить его («LIMPIADOR BAO 1'5 L»).

6
задан Sergi 10 January 2011 в 19:36
поделиться