使用来自openpyxl的load_workbook导入Excel时出现UnicodeEncodeError

时间:2019-05-15 00:00:00

标签: python unicode openpyxl python-unicode

我正在使用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()函数时问题就来了,

可以帮忙吗?

0 个答案:

没有答案