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