我正在将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元素而是普通字符串。感谢
答案 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)
,则可以避免该错误。