本文目录一览:
- 1、python之jsonpath模块
- 2、Python 操作crontab
- 3、求解释python中这几句话的意思
- 4、Python(十七)阶段小结
- 5、Python爬虫之Header
- 6、python之用例定制化执行,mark是核心
python之jsonpath模块
安装方法:pip install jsonpath
官方文档:
jsonpath表达式与xPath表达式类似,用来解析多层嵌套的json数据。
JsonPath是Json版的XPath。
JsonPath 对于 JSON 来说,相当于 XPath 对于 XML
JsonPath用符号 $ 表示最外层对象,类似于Xpath中的 根元素
jsonPath可以用:
例如, address.* 表示address对象的所有属性,
book[*] 表示book数组的所有项目。 |
| [n] | 从数组中选择第n那一个元素。索引从0开始。 |
| [n1,n2,…] | 选择具有指定索引的数组元素,相当于上一个的多选。返回一个列表 |
| [start:end]
[start:] | 数组切片操作:
从start索引直到(但不包括)end索引选择数组元素。
省略 end ,则选择从start到数组结尾的所有元素。返回一个列表 |
| [:n] | 选择数组的前n个元素 |
| [-n:] | 选择数组的最后n个元素 |
| [?(expression)] | 过滤表达式,进行数据筛选 |
| [(expression)] | 使用表达式。
[(@.length-1)] 选择数组中的最后一项。
在这里 length 是指当前数组的长度,而不是名为的JSON字段 length 。 |
Python 操作crontab
crond服务我们经常用到,例如定时处理掉过期的订单,未支付的订单等,或者定时跑一些报表,统计数据等等,如果我们只是有1-3个定时任务再跑,其实也没啥问题,直接shell走起
但是随着定时任务不断增加,你会发现维护起来不太方便。所以本文介绍利用Python实现自动化管理
Python操作crond依赖python-crontab包,本文还需要croniter 包,那么就
封装一个基本的操作类
调用
轻松实现定时任务Python管理
求解释python中这几句话的意思
bi = [0.0 for i in range(itemNum)],建一个共有itemNum个元素且每个元素都是0.0的列表
bu = [0.0 for i in range(userNum)],建一个共有itemNum个元素且每个元素都是0.0的列表
temp = math.sqrt(factorNum),temp等于factorNum的平方根
qi = [[(0.1 * random.random() / temp) for j in range(factorNum)] for i in range(itemNum)]
qi为一个随机矩阵,大小为itemNum*userNum,每个元素都是随机数,大小为[0,0.1*temp]
pu = [[(0.1 * random.random() / temp) for j in range(factorNum)] for i in range(userNum)]
pu为一个随机矩阵,大小为itemNum*userNum,每个元素都是随机数,大小为[0,0.1*temp]
Python(十七)阶段小结
Editor:Lonelyroots
人活一世,良田千顷,也不过一日三餐,广厦万千,也只睡卧榻三尺。
人生苦短,每天若纠结于过去的事情,不仅会虚度光阴,还会让周围的人渐而远之,所以心中要无所求,做自己喜欢的事情。生活是自己努力出来的,而不是靠别人决定的,虽然此盼是万万人中少数人的期许,但大多数人心中有想法,只是被社会的形势所逼迫,所以不求放弃自己的生活,但忙碌之余也要注意自己兴趣爱好的发展!任何的限制,都是从自己的内心开始的。
温故而知新,Python装饰器、异常和正则的阶段小结来了!
Editor:Lonelyroots
文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去,一起加油!
Editor:Lonelyroots
Python爬虫之Header
HTTP “请求头信息” Request Header 是向服务端提供客户端的信息,“响应头信息” Response Header 是服务端向客户端提供请求文档信息或服务器的状态信息,服务端判断服务端的身份,就是通过 Header 来判断的,所以爬虫通过设置 Header 来隐藏自己相当重要。
一个完整的HTTP请求包含以下部分:
请求方法 URL HTTP版本
请求头信息
请求数据
一个空行,请求的结束行
常见的请求头:
Accept :客户端接收的数据类型,如:Accept:text/html
User Agent :客户端软件类型
Authorization :认证消息,包括用户名和口令
Referer :用户获取的Web页面
真实的请求头信息会更多,下面是豆瓣某短评的真实请求头:
一个完整的HTTP响应包含以下部分:
状态行
响应头
响应数据
常见的状态行:
更多状态码查看: HTTP状态码
常见的响应头:
Server :Web服务器程序的信息
Date :当前服务器的日期和时间
Last Modified :请求文档最近一次修改的时间
Expires :请求文档过期时间
Content-length :数据长度(字节)
Content-type :数据MIME类型
WWW-authenticate :用于通知客户方需要的认证信息,如用户名,口令等
下面是豆瓣某短评的真实响应头:
Python使用Requests来请求的时候,如果没有设置Header,Header是空的,设置Header的方法如下:
python之用例定制化执行,mark是核心
在我们对环境初始化和定制化清除以后,我们可以通过pytest.fixture去操作执行用例。根据命令: fixture(scope='function',params=None,autouse=False,ids=None,name=None)去对方法、类、模块、包进行调用。
新增configtest.py文件
注意:如果有多个.py文件需要调用同一方法,将方法写入conftest.py配置文件,test_xxx.py文件会被自动被pytest进行搜索执行。
目前执行全部用例已经实现,但是需要对特定的业务进行测试,需要筛选出对应的业务模块部分测试。
输入命令,执行全部用例命令:
定制化命令,执行组装后的流程用例:
输入定制化命令,执行定制化的用例命令:
test_lesson.py::TestLesson::test_lesson_add
test_lesson.py::TestLesson::test_lesson_add
对应的配置文件,pytest.ini:
pytest中数据驱动需要一个装饰器pytest.mark.parametrize(参数1,参数2),里面传多个值第一个参数是字符串,第二个参数是列表,列表里面嵌套元组。