码迷,mamicode.com
首页 > 编程语言 > 详细

Python使用中错误(持续更新.....)

时间:2017-09-15 18:56:07      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:问题   python使用   存在   http   username   ons   没有   passport   解码   

1、在使用requests发送请求,响应数据转成json提示,没有可解码的json

解决办法:

这是由于,发送请求的数据,存在错误,响应出错比如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字典

如上图代码如果执行报如下错误:

技术分享

解决办法,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中,读出来的时候默认就是字符串,如果读出来直接使用就会出现本文的错误,

所以哪里错了这个要知道,这是一个小细节;调试输出,发现输出跟以下是一样的,

没有错呀这是字典呢{‘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、

 

Python使用中错误(持续更新.....)

标签:问题   python使用   存在   http   username   ons   没有   passport   解码   

原文地址:http://www.cnblogs.com/yhleng/p/7526992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!