2029/02/28更新:Python2.7 json.loads(string_format),如8更新
用Python两年多了,也基本熟悉了,但是长久不用,写着又会出错了,以下今后报错和改正的总结,希望对新手或者初学者一定帮助,报错不可怕,认真看错误原因和百度、google,基本都能解决的!以下指的是Python3版本
1、关于map
python3.3之后,通过map函数生成的就是一个iterators,如果你需要看里面的内容,可以用List转换,再转其他格式,例如
a = map(lambda x: x**2, [1,2,3,4]);返回[1,4,9,16],列表格式!
2、关于sys
sys.argv[0]表示文件名,sys.argv[]表示输入参数列表,例如在shell环境下运行,python test.py a b c
sys.argv[0] = test.py; argv[1] = 'a' argv[2] = 'b' 以此内推,大家可以敲一下试试!
3、关于文件读取
我们一般采用pandas,pd.xxx(import pandas as pd)进行文件读取,后面一般加全路径,但是有时候会报character错误,特别是windows系统下;
解决办法:建议采用(r"/path")或者("//path")或者效仿linux,采用("\path\file"),就能解决问题了
4、cmd 进入命令行报错 python无法找到,尽管你安装了anaconda2或者anaconda3
这个问题是你可能需要去修改一下你的环境变量了,anaconda的路径并没有完全加进去,结果方法如下:C:\Users\sx\AppData\Local\Continuum\anaconda3\Scripts;
C:\Users\_sx\AppData\Local\Continuum\anaconda3\Library\bin;
C:\Users\_sx\AppData\Local\Continuum\anaconda3;
把这三个加进去就没问题,安装路径需要对应你自己的路径,以上是我的安装路径,请留意。
5、更新内容:df[(True^df['appID'].isin([278,382]))&(True-df['appPlatform'].isin([2]))],df代表数据集DataFrame,app等代表列名;
6、Python class 中带一条下划线_ 的变量保护类型只能允许其本身与子类进行访问,不允许被 from module import *;而带__两条下划线的变量__foo,只允许被本身类使用;__foo__是特殊变量定义方法,一般用于系统变量;
7、The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all():关于DataFrame报上述错误的时候,一般是你用merge、concat等拼接方法,导致它的索引发生了重叠,在后续循环体的时候,如果你用到索引,就会报错;改错的方法是:df.reset_index(drop=True),删除原来索引,重建一个索引就可以。
8、能不能python2.7就别用,尤其是解析中文json格式,导致的问题有以下几个:(1)乱码-python2.7默认unicode编码 (2)由于乱码问题引入"\"字符导致loads报错,并且错误类型千奇百怪