Cocoapods安装和行使中常见错误【持续更新】

一、在应用requests发送请求,响应数据转成json提醒,未有可解码的json

设置或更新第2方库时出现如下警告

[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

原因:

  • 使用了文本编辑去编辑Podfile文件;Pod文件最佳应用Xcode编辑,只怕使用Vim编辑。
  • Podfile 的剧情语法格式有标题

消除办法:

那是由于,发送请求的数码,存在错误,响应出错比如404
400,所以找不到能够解码的json

示范如下:

postdata = '''{'userName':'13718651996',
            'passwd':'yhlxxxx870120',
            'validateCode':'abc',
            'rememberMe':'true'}'''
url = 'https://secure.elong.com/passport/ajax/elongLogin'
response = Session().post(url,data=postdata)
print(response.json())

骨子里从图上很显然能来看难点,因为postdata是字符串类型,不是dict字典

如上海教室代码假设实施报如下错误:

图片 1

化解办法,eval()函数将字符串,转变来字典;如下所示

postdata = '''{'userName':'13718651996',
            'passwd':'yhlxxxx870120',
            'validateCode':'abc',
            'rememberMe':'true'}'''
url = 'https://secure.elong.com/passport/ajax/elongLogin'
request = Session().post(url,data=eval(postdata))
print(request.json())

有人也许会说,你那不是借题发挥吗?把postdata直接定义成字典不就行了;你说的没有错确实能够如此

postdata = {'userName':'13718651996',
            'passwd':'yhlxxxx870120',
            'validateCode':'abc',
            'rememberMe':'true'}
url = 'https://secure.elong.com/passport/ajax/elongLogin'
request = Session().post(url,data=postdata)
print(request.json())

然而1旦以下那串数据,存款和储蓄在数据库中,恐怕excel中,读出来的时候暗中同意正是字符串,若是读出来直接利用就谋面世本文的荒谬,

为此哪儿错了这几个要精晓,那是二个小细节;调节和测试输出,发现输出跟以下是一样的,

从不错呀那是字典呢{‘xxxx’:’xxx’……….},不过它就是字符串。轻巧被忽视,所以还要选用eval(postdata)函数转成字典

{'userName':'13718651996',
            'passwd':'yhlxxxx870120',
            'validateCode':'abc',
            'rememberMe':'true'}

毋庸置疑代码:

postdata = '''{'userName':'13718651996',
            'passwd':'yhlxxxx870120',
            'validateCode':'abc',
            'rememberMe':'true'}'''
url = 'https://secure.elong.com/passport/ajax/elongLogin'
request = Session().post(url,data=eval(postdata))
print(request.json())

------------------------------小编是华丽的分隔线----------------------------------

2、join拼接路线

os.path.join拼接路线,遭遇的主题材料,平常会把团结绕进去

 

str = r'd:\PHJ\Reporter\LOGS'
#报告文件路径
reporPath = os.path.join(str,'report')
isExistPath(reporPath) #创建文件夹

print(reporPath)

imgPath = os.path.join(reporPath,'\\Image')
print(imgPath)

 

破绽百出输出输出:

d:\PHJ\Reporter\LOGS\report
d:\Image

咱俩盼望结果:

d:\PHJ\Reporter\LOGS\report
d:\PHJ\Reporter\LOGS\report\Image

是否很离奇,难点毕竟出在何地,这一个难点让作者纠结了永久,一个不太放在心上的小意思。

图片 2

是的,大家就是东拼西凑的时候,多了五个返斜扛。去掉后难题消除。

 

叁、写完项目,直接在Computer中双击py文件,报文件中援引的包找不到

种类结构,要施行run文件夹下的run.py ;报找不到run文件中援引的包

图片 3

原因:双击实施的时候,不会自行进化寻找包,只会在时下文件夹及子文件夹中寻找

那正是说怎么做吧,把实施文书,在品种根目录下建个run.py做为实行入口,难题消除。

图片 4

 

您也许会说了,这样做,作者某些引用路线的地点不对了,那作者估算是获取路线的措施是

os.getcur
 获取当前路径,那样1来,你每一种文件用的门道都是当前引述文件所在的路径

故此建议起个gl文件,用来储存路线。等信息。

os.path.abspath(os.path.dirname(__file__))
用这么些获得当前路径,而毫无用os.getcur

不然,即便你把获得路径那一个,配置到gl也正是单身三个py中,那么分化职位调用。路线也会差异。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图