Python读取csv、excel编码问题导致的错误(ValueError: Expected 2 fields in line 2, saw 3)

背景:由于需要读取的文件编码与系统环境编码的不同,比如繁体windows系统读取简体的csv文档,经常会出现一些难以解决的编码问题,也是试了网上许多方法均不得解,最终采取
改变Python标准输出的默认编码来解决。


常见报错:1、ValueError: Expected 2 fields in line 2, saw 3
                  2、UnicodeEncodeError: 'cp950' codec can't encode character '\u76d8' in position 388: illegal multibyte sequence

解决方案:

Python3:

import io

import sys

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码

Python2:

import sys

reload(sys)

sys.setdefaultencoding('utf8') #改变标准输出的默认编码

posted @ 2020-06-09 10:32  以诗为茗  阅读(2383)  评论(0编辑  收藏  举报