2017-08-06 184 views
1

我是Python新手,我正尝试使用下面的脚本读取csv文件。Python:UnicodeDecodeError:'utf-8'编解码器无法解码位置35中的字节0x96:无效起始字节

Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='utf-8') 

但是,收到错误“的UnicodeDecodeError:在35位‘UTF-8’编解码器不能解码字节0x96:无效的起始字节”,请帮我在这里认识的问题,我使用的编码在脚本认为这将解决错误。

+1

显然你的csv文件不是UTF-8编码... –

+1

编码='cp1252'可能值得一试,如果你在Windows上。 –

+0

@MartinR,非常感谢您的帮助。编码='cp1252'工作很快。 – user3734568

回答

2

发生这种情况是因为您选择了错误的编码。

如果您使用的是Windows只是更换

Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='utf-8') 

Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='cp1252') 

应该解决的问题。

+1

感谢您的解决方案,我能够使用您共享的解决方案读取CSV文件中的所有行 – user3734568

2

使用此解决方案,它将去除(忽略)字符并返回没有它们的字符串。只有在你需要剥离它们而不是转换它们时才使用它。

with open(path, encoding="utf8", errors='ignore') as f: 

使用errors='ignore'您只会丢失一些字符。但如果你不关心他们,因为他们似乎是来自连接到我的套接字服务器的客户端的错误格式和编程的额外字符。那么它是一个简单的直接解决方reference

0

尝试使用:

pd.read_csv(“Your filename", encoding="ISO-8859-1”)

我解析从一些网站在此编码代替默认UTF-8编码,其是标准转换的代码。

+0

欢迎使用StackOverflow。只有代码在他们的答案往往会被标记为删除,因为他们是“低质量”。请阅读关于回答问题的帮助部分,然后考虑在答案中添加一些评论。 – Graham

相关问题