无法在 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]
,您将避免该错误。
我正在将 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]
,您将避免该错误。