使用pd.read_csv读取FakeNewsCorpus数据集报UnicodeDecodeError如何解决
报错原因
- 首要原因:你正在读取的
news.csv.z02属于分卷压缩文件的分片,并非解压后的CSV文本文件。FakeNewsCorpus v1.0版本的完整数据集被拆分为多个连续的分卷压缩包分发,直接读取二进制格式的压缩分片,自然会因为无法用文本编码解析抛出UnicodeDecodeError,和编码设置无关。 - 次要原因:如果已经完成分卷合并解压后读取仍报错,才是编码不匹配的问题,该数据集存在非UTF-8的特殊字符,默认UTF-8编码无法覆盖所有内容。
解决方案
第一步:合并解压分卷压缩包
将所有下载的同系列分卷文件(命名格式为news.csv.z01、news.csv.z02……最后一个为news.csv.zip)放在同一个目录下,再进行合并解压。如果是在Colab/Linux环境,执行以下命令即可完成解压:
# 安装7z分卷解压工具 apt update && apt install p7zip-full -y # 自动识别连续分卷并解压,得到完整的news.csv文件 7z x /content/news.csv.zip
第二步:读取解压后的CSV文件
使用兼容范围更广的编码读取即可避免解码错误:
import pandas as pd dataset = pd.read_csv('/content/news.csv', encoding='latin-1')
如果还存在行格式异常的报错,可以添加参数跳过坏行:
dataset = pd.read_csv('/content/news.csv', encoding='latin-1', on_bad_lines='skip')
内容的提问来源于stack exchange,提问作者TheChicken4452
相关产品推荐
相关产品推荐

