Python itertools.islice触发器UnicodeincodeError:&x27;ascii';编解码器可以';t编码字符错误

Python itertools.islice触发器UnicodeincodeError:&x27;ascii';编解码器可以';t编码字符错误,python,utf-8,Python,Utf 8,我有以下代码来读取csv中的列: # ------------------------------------------------------------------------------ # READS CSV, RETURNS LIST OF COLUMN DATA, FROM ROW rowStart TO rowFinish # -----------------------------------------------------------------------------

我有以下代码来读取csv中的列:

# ------------------------------------------------------------------------------
# READS CSV, RETURNS LIST OF COLUMN DATA, FROM ROW rowStart TO rowFinish
# ------------------------------------------------------------------------------
def csvColumnAsList(csvFileName, column, rowStart, rowFinish):
    column_list = [] # defines it as a list
    with codecs.open(csvFileName, 'r', 'utf-8') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=',')
        for row in itertools.islice(spamreader, rowStart, rowFinish+1):
            column_list.append(row[column].decode('utf8'))
    return column_list
但这会引发一个错误:

File "algo-8.py", line 51, in csvColumnAsList
    for row in itertools.islice(spamreader, rowStart, rowFinish+1): UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in
position 215: ordinal not in range(128)
有人能帮我吗。 我尝试了一些编码、解码的方法,但还没有弄明白。

请参阅模块文档的第页。在这里它指出(在第6个代码示例下面):

csv模块不直接支持读取和写入Unicode[…],但您可以编写函数或类来处理编码和解码,只要您避免使用NUL的UTF-16之类的编码。建议使用UTF-8

在页面的末尾有一个随时可用的实现