无法在python中将unicode转换为字符串获取错误

时间:2017-05-10 23:23:36

标签: python excel string unicode unicode-string

我正在将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)

OR: 如果你能告诉我如何从excel列读入列表而不是unicode元素而是普通字符串。感谢

1 个答案:

答案 0 :(得分:0)

最后一个错误来自SELECT date_format('%Y-%m-%d', date_trunc('day', "days")) AS "Day", count(DISTINCT customerid) AS "Count" FROM "doc"."mytable" WHERE date_format('%Y-%m-%d', date_trunc('day', "days")) BETWEEN date_format('%Y-%m-%d', date_trunc('day', current_timestamp + -2592000000)) AND date_format('%Y-%m-%d', date_trunc('day', current_timestamp + -86400000)) GROUP BY date_format('%Y-%m-%d', date_trunc('day', "days")) ORDER BY date_format('%Y-%m-%d', date_trunc('day', "days")) ASC limit 100; ;如果您使用str(x),则可以避免该错误。