Pandas调用read_csv读取CSV时触发utf-8解码错误该如何解决
报错根因
该编码报错源于读取的keyword_list_v1.csv文件编码不是pd.read_csv默认的UTF-8格式,文件中包含UTF-8规则无法解析的字符,通常是该CSV由系统默认编码(如中文Windows的GBK、英文Windows的cp1252等)导出导致。
解决步骤
- 优先测试常见兼容编码,修改
pd.read_csv行代码,依次尝试以下参数:
适配中文环境导出的CSV:
适配英文环境导出的非UTF-8 CSV:df = pd.read_csv("keyword_list_v1.csv", names=colnames, encoding='gbk')df = pd.read_csv("keyword_list_v1.csv", names=colnames, encoding='latin-1') - 若上述方案无效,先检测文件实际编码再指定读取:
先安装编码检测库:pip install chardet
执行编码检测代码:
将输出的编码值填入import chardet with open("keyword_list_v1.csv", 'rb') as f: print(chardet.detect(f.read())['encoding'])pd.read_csv的encoding参数即可。 - 若存在格式异常的行导致读取中断,可增加参数跳过坏行:
df = pd.read_csv("keyword_list_v1.csv", names=colnames, encoding='你检测到的实际编码', on_bad_lines='skip')
额外注意
后续写入CSV时如果出现乱码或者编码报错,可给to_csv方法指定编码,若需要用Excel打开输出文件,推荐使用utf-8-sig编码:
result.to_csv('search_trends.csv', encoding='utf-8-sig')
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

