Python使用中错误(持续更新.....)
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':'',
'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':'',
'passwd':'yhlxxxx870120',
'validateCode':'abc',
'rememberMe':'true'}
正确代码:
postdata = '''{'userName':'',
'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
是不是很奇怪,问题到底出在哪里,这个问题让我纠结了好久,一个不太注意的小问题。
没错,我们就是拼接的时候,多了两个返斜扛。去掉后问题解决。
3、写完项目,直接在计算机中双击py文件,报文件中引用的包找不到
项目结构,要执行run文件夹下的run.py ;报找不到run文件中引用的包
原因:双击执行的时候,不会自动向上搜索包,只会在当前文件夹及子文件夹中搜索
那么怎么办呢,把执行文件,在项目根目录下建个run.py做为执行入口,问题解决。
你可能会说了,这样做,我一些引用路径的地方不对了,那我估计是获取路径的方式是
os.getcur 获取当前路径,这样一来,你每个文件用的路径都是当前引用文件所在的路径
所以建议起个gl文件,用来存储路径。等信息。
os.path.abspath(os.path.dirname(__file__)) 用这个获取当前路径,而不要用os.getcur
否则,即使你把获取路径这些,配置到gl也就是单独一个py中,那么不同位置调用。路径也会不同。
Python使用中错误(持续更新.....)的更多相关文章
- LeetCode 题目的 Python 实现(持续更新中)
Python-LeetCode 是一个使用 Python 语言解决 LeetCode 问题的代码库,库有以下几个方面需要注意: 所有题目都是 AC 的: 按照题目顺序,每 50 个放在一个目录下,方便 ...
- LeetCode python实现题解(持续更新)
目录 LeetCode Python实现算法简介 0001 两数之和 0002 两数相加 0003 无重复字符的最长子串 0004 寻找两个有序数组的中位数 0005 最长回文子串 0006 Z字型变 ...
- Java遇到的问题、错误——持续更新
内容:dead code.关于eclipse没有js代码提示的解决 持续更新 ######################################################## dead ...
- python练习题(持续更新中。。。。。)
1.检验注册用户是否合法:需要输入用户名,校验用户名是否被注册,如已注册,提示已经注册过,没注册就可以注册:用户名不能为空:用户名长度必须在6-13位之间:最多只能输入三次. users = ['aa ...
- Python 字典 (4) 持续更新
字典一种用名字来引用值的数据结构,这种数据结构称为 映射(mapping) .字典中的键可以是数字.字符串和元组. 字典 创建和使用 创建 phonebook = {'Aaron':133000000 ...
- Python 字符串 (3) 持续更新
字符串操作 虽然字符串也是一种序列,但是它和元组一样,不可变的.当你想对它修改时,会引发异常.如 >>> strings = "Let's go">> ...
- python笔记(持续更新)
1.编译python遇到下面的编码问题: SyntaxError: Non-ASCII character '\xe9' in file E:\projects\learn.py on lin ...
- python tips(持续更新)
1. 引用上一层目录 import syssys.path.append('..')import xx 2. python json JSON是一种轻量级的数据交换格式.可以解决数据库中文存储问题,对 ...
- Python相关工具清单[持续更新]
SublimeJEDI : awesome Python autocompletion with SublimeText. Awesome Python : A curated list of awe ...
随机推荐
- oracle查看某表字段类型
来源:https://www.cnblogs.com/ufindme/p/5033843.html 今天遇到一个问题:要求在可重复执行的SQL脚本添加一段SQL代码:修改当前的数据类型.因为SQL代码 ...
- SecureCRT自动上传文件python脚本
本人在ubuntu下使用SecureCRT,上传文件习惯用rz命令.每次上传都弹对话框选择文件按确定后才上传,感觉很费力.最后自己摸索整理出一个脚本. 使用方法是,在[Script]菜单点[Run.. ...
- Android中的AlarmManager的使用
AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent.而使用Intent的时候,我们还需要它执行一个动作,如startActivity, ...
- Web重温系列(二):SQLite+EF6实现本地化存储
本来我们的产品有着复杂的层次结构,作为客户端的C# WinForm是不操作数据库的.但是最近有个需求,需要将数据本地保存.可选的方案很多,比如文本文件或者XML序列化和反序列化,或者如access.d ...
- [springBoot系列]--springBoot注解大全[转]
一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...
- Apple Watch S3 解锁 MacBook Pro 2015版失败的解决办法
我的MacBook Pro MF839由于只有128G的内存,所以就只能藏在我的抽屉底下,偶尔想体验一下xcode的时候再拿回来用下,想想都浪费 也不是不想换SSD,只是看了一下,价格太贵了,256G ...
- A股滚动净利润增速最高排名
最近2年(共8个季度)的滚动净利润都在增长,且平均增速超过10%. 计算举例:滚动净利润增速 = ((2018Q1 到 2018Q4的净利润之和) / (2017Q4 到 2018Q3的净利润之和) ...
- React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块
尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...
- iOS开发之--Masonry多个平均布局
使用Masonry平均布局,代码如下: 1.创建 // 图片组数 NSArray *imgAry = @[@"home_icon01",@"home_icon02&quo ...
- sqlserver等软件下载
http://msdn.itellyou.cn/ 找到所需要的,复制下载路径,到迅雷下载