无法在 python 中将 unicode 转换为字符串出现错误

Unable to convert unicode to string in python getting error

我正在将 excel 文件中的一列读入列表,如下所示:

import xlrd
import openpyxl
book = xlrd.open_workbook("English corpus.xlsx")
sheet = book.sheet_by_index(0)


data=[]
for row_index in xrange(1, sheet.nrows): # skip heading row
    timestamp, text, header, transporter, device_type = sheet.row_values(row_index, end_colx=5)
    print (text)
    data.append(text)

但是 data 列表中的元素属于 "unicode" 类型。我尝试执行以下操作将它们转换为字符串:

[x.encode('UTF8') for x in data]

但随后出现以下错误:

AttributeError: 'int' object has no attribute 'encode'

然后我尝试执行以下操作:

[str(x).encode('UTF8') for x in data]

这给了我以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 176: ordinal not in range(128)

或: 如果你能告诉我如何从 excel 列读取到列表中,而不是 unicode 元素,而是普通字符串。谢谢

最后一个错误来自str(x);如果您使用 [unicode(x).encode('UTF8') for x in data],您将避免该错误。