将列表转换为 csv 格式时如何修复编码错误?

Posted

技术标签:

【中文标题】将列表转换为 csv 格式时如何修复编码错误?【英文标题】:How to fix a encoding error when converting list to csv format? 【发布时间】:2016-01-26 06:37:49 【问题描述】:

我在尝试将我的 unicode 列表写入 csv 文件时收到 AttributeError: 'tuple' object has no attribute 'encode'"

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' 对象没有属性'encode'

您只能对字符串进行编码(具体而言,将 Unicode 字符串编码为字节字符串)。

rowToken 不是字符串,而是字符串列表。您必须单独编码其中的每个字符串。例如:

encodedCells = [cell.encode('utf-8') for cell in rowToken]
writer.writerow(encodedCells)

【讨论】:

以上是关于将列表转换为 csv 格式时如何修复编码错误?的主要内容,如果未能解决你的问题,请参考以下文章

将列表转换为数据框时如何使用“换行”命令?

如何将 csv 字符串转换为 pandas 中的列表?

如何将 csv 字符串转换为 pandas 中的列表?

如何将 csv 文件转换为可作为文本读取的列表列表? Python

如何将Excel文件转换成db文件,如下

如何将 csv 文件转换为 python 中的列表列表