Python问题:AttributeError: '_csv.reader' object has no attribute 'next' 以及UnicodeDecodeError: 'gbk' co

先看一下代码:


报错:


解决方式:



这是我在网上找到的解决方式,先说一下出现问题的原因:出现AttributeError主要是因为python 2和 3 的版本问题!在python 3 中使用的是内建函数 next(),所以应该写成 next(reader),而不是reader.next(),另外文件打开模式也要相应改成”rt”。


到此,AttributeError已经得到解决,但是这个问题解决之后我随之有遇到一个问题如图:


一个编码问题,编码问题是一个让人比较头疼的问题,我们先来好好看看这个编码问题:

UnicodeDecodeError:'gbk' codec can't decode byte 0xa2 in position 50: illegal multibyte sequence


1、      错误类型:UnicodeDecodeError,可知Unicode的解码(Decode)出现错误(Error)了,也即我们想要将一个某种类型的字符串解码(decode)变成Unicode,但是在解码过程中出错了。

2、      用什么方式解码:'gbk' codec can't decode,可知我们试图用GBK编码方式去将字符串解码为Unicode。(注:codec是指编解码器,是python内部的模块,用来编码或者解码字符串的)

3、      错误位置:byte 0xa2 in position 50,这种信息用的比较少,可以先忽略。

4、      详细错误说明:illegal multibyte sequence,也即不能解码了。


综合以上对错误的分析,可以知道,这个错误所表达的就是:我们试图将一个字符串通过GBK的方式解码,想要活动Unicode编码的字符串,但是出错了。

编码出错的原因比较多(点击这里查看更多出错原因),这里不在详细讲解有哪些出错原因,只给出我最后分析得出的出错原因。

出现这个错误主要是因为我在保存 coding.csv 这个文件时没有指定编码类型,这个文件是我使用Excel编写完后,直接改后缀名的,Excel文件的编码方式可以点击这里查看


附带联想到的问题:如何得到一个文件的编码方式?

Python中查看一个文件的编码方式比较简单,可以采用如下方式:


检测结果:


一个是检测的可信度,另外一个就是检测到的编码。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值