本文目錄一覽:
- 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),裡面傳多個值第一個參數是字元串,第二個參數是列表,列表裡面嵌套元組。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/282724.html