对于spamreader中的行:UnicodeEncodeError:'ascii'编解码器无法对89位的字符u'\u2013'进行编码:序号不在范围内(128)

2024-04-19 09:11:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python2.7中的以下代码从utf-8编码的csv文件中读取数据。我正在使用codecs.openencoding=utf-8来读取文本文件,但是,我一直遇到同样的问题。你知道吗

import csv
import gensim
import nltk
from nltk.corpus import stopwords
import codecs

...

with codecs.open('data_techsupport.csv', encoding='utf-8', errors='ignore') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in spamreader:
        vectors.append([])
        x=list(row)
        x[0].encode('utf8')
        sentence=nltk.word_tokenize(x[0])

...

我得到的错误是:

for row in spamreader:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 89: ordinal not in range(128)

有人能帮忙吗?你知道吗


Tags: csvcsvfile代码inimport编码foropen