2017-05-10 46 views
0

我從Excel電子閱讀欄文件到列表如下:無法Unicode字符轉換成字符串在python得到錯誤

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) 

OR: 如果你能告訴我如何從excel列讀入列表,而不是unicode元素,而是普通字符串。謝謝

+0

似乎屬性的類型是'int',而不是'unicode' ... –

+0

'unicode'是一個字符串。除非你需要ascii來完成你可能根本不需要轉換的東西。 – Cfreak

+0

當我鍵入(x)時,我得到。但我希望 Arman

回答

0

最後一個錯誤來自str(x);如果您使用[unicode(x).encode('UTF8') for x in data],您將避免該錯誤。

+0

可以消除錯誤,但列表元素仍然保持unicode類型而不是字符串類型。 – Arman

+0

'data = [unicode(x).encode('UTF8')for x in data]'將用新的替換舊列表。 – cco

相關問題