先看一下代码:
报错:
解决方式:
这是我在网上找到的解决方式,先说一下出现问题的原因:出现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中查看一个文件的编码方式比较简单,可以采用如下方式:
检测结果:
一个是检测的可信度,另外一个就是检测到的编码。