2015-10-27 2 views
0

Я получаю AttributeError: 'tuple' object has no attribute 'encode'" при попытке записать свои списки Юникода в CSV файл:Как исправить ошибку кодирования при преобразовании списка в формат csv?

with open('assignmentTest.csv', 'wb') as finale: 
writer = csv.writer(finale) #creates csv file to write final lists into 
finalRows = zip(firstName, lastName, phdName, universityName, departmentName) #put all of the lists into another lists so that the outputs are in 'column form' as opposed to rows 
for rowToken in finalRows: #puts each element of each list together in the same order 
    conver = rowToken 
    writer.writerow(conver.encode('utf-8')) 

Первоначально (без .encode ('UTF-8')) Я получаю сообщение об ошибке:

"UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 24: ordinal not in range(128)" 

Кто-нибудь знает, как исправить это, чтобы я мог писать свои списки?

ответ

1

'tuple' object has no attribute 'encode'

Вы можете кодировать строки (в частности, строки Unicode в байтовые строки).

rowToken не является строкой, это список строк. Вы должны кодировать каждую строку внутри нее по отдельности. Например:

encodedCells = [cell.encode('utf-8') for cell in rowToken] 
writer.writerow(encodedCells) 
Смежные вопросы