Cocoapods安装和使用中常见错误【持续立异】

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

安装或更新第三方库时出现如下警告

[!] 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())

只是假如以下那串数据,存款和储蓄在数据库中,也许excel中,读出来的时候暗许正是字符串,假如读出来直接行使就会并发本文的荒唐,

为此哪儿错了那个要明白,那是三个小细节;调节和测试输出,发现输出跟以下是如出1辙的,

从未错呀那是字典呢{‘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())

------------------------------作者是华丽的分隔线----------------------------------

二、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地图