我正在使用python 2.7,尝试使用来自openpyxl的load_workbook加载和处理excel文件。
我正在读取文件,如下所示:
book = load_workbook(path +"/" + file_name, data_only=True)
sheet1 = book[sheet_name]
在执行代码时出现此错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 62: ordinal not in range(128)
引起错误的具体部分(根据日志)是这样的:
#Verfying Null and None values in current row (if it's the case put null as value and comma as separator)
if len(str(sheet1.cell(row=r, column=c).value)) == 0 or sheet1.cell(row=r, column=c).value == None or sheet1.cell(row=r, column=c).value == "None":
values= values + " null" + ","
请注意,我尝试在脚本的第一行添加(下面的代码),但结果相同:
# -*- coding: utf-8 -*-
同样,当我删除包含 str()函数的部分时,它也起作用,但是当我尝试在 str()顶部进行编码时会出现相同的错误。 这是我所做的更改(添加encode('utf-8'):
if len(str(sheet1.cell(row=r, column=c).value).encode('utf-8')) == 0 or sheet1.cell(row=r, column=c).value == None or sheet1.cell(row=r, column=c).value == "None":
values= values + " null" + ","
我认为当我们使用str()函数时问题就来了,
可以帮忙吗?