UnicodeDecodeError:' ascii'编解码器无法解码118374位的字节0xef:序数不在范围内(128)

时间:2018-06-12 08:35:43

标签: python beautifulsoup

我正在尝试一些NLP算法,现在我正在关注情绪分析。出于这个原因,我从http://www.cs.jhu.edu/~mdredze/datasets/sentiment/index2.html下载了一些带有正面和负面评论的.review格式文件。

我使用BeautifulSoup来解析这些XML文件,现在我只是尝试通过执行以下源代码来读取它们:

from bs4 import BeautifulSoup

positive_reviews = BeautifulSoup(open('*******/electronics/positive.review').read())
positive_reviews = positive_reviews.findAll('review_text')

negative_reviews = BeautifulSoup(open('*******/electronics/negative.review').read())
negative_reviews = negative_reviews.findAll('review_text')

但是,我收到以下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 118374: ordinal not in range(128)

positive_reviews = BeautifulSoup(open('*******/electronics/positive.review').read())

将被执行。

如何解决此错误?

我也已经取代了

BeautifulSoup(open('*******/electronics/positive.review').read())

BeautifulSoup(open('*******/electronics/positive.review').read().decode('utf-8'))

但我得到了完全相同的错误。

最后,我已经阅读了StackOverflow上的一些相关帖子,但到目前为止我没有任何作用。例如,我的终端echo $LANG输出en_GB.UTF-8,如UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 1的第一个回答所述,但我仍然收到上述错误。

1 个答案:

答案 0 :(得分:1)

如果您正在使用Python 3,请尝试替换

open('*******/electronics/positive.review')

open('*******/electronics/positive.review', encoding='utf-8')