之前我寫介面自動化測試時候,對於複雜的json返回,會使用jsonpath這個第三方庫,就像寫xpath一樣,方便的查詢json元素。
因為之前寫web自動化時候,總用xpath去查詢元素,所以用起來非常順手。
這裡是github上的鏈結,感興趣的童鞋也可以去學習一下:jsonpath
不過httprunner使用的是另乙個第三方庫jmespath,這個我還是第一次聽。大概看了下好像也很不錯,這裡是github鏈結和官方教程。
github位址
官方教程
1. 基礎表示式
①. 對於字典,可以直接輸入key來獲取到對應的value。(注意,search是jmespath提供的查詢方法,第乙個引數是查詢語法,第二個則是要查詢的資料)
import jmespath
dic_1 =
path = jmespath.search("a", dic_1)
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
foo
如果索引的key不存在,那麼會返回null,或者等效於null的語言,比如在python中返回就是none。
import jmespath
dic_1 =
path = jmespath.search("d", dic_1)
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
none
②. 實際中介面的返回值很多是多層巢狀的,比如我要獲取最裡面一層的value,可以這樣查詢:
import jmespath
dic_1 = }}}
path = jmespath.search("a.b.c.d", dic_1)
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
value
同樣,如果引用的鍵不存在,則返回null值。
2. 切片
①. 對於乙個列表,可以直接用下標查詢,類似於python中list元素訪問。(注意,索引基於0開始的)
import jmespath
# dic_1 = }}}
list_1 = ["a", "b", "c", "d", "e", "f"]
path = jmespath.search("[1]", list_1)
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
b
②. 字典和列表的巢狀也非常常見,同樣查詢也可以組合使用:
import jmespath
dic_1 = ,]}
}}path = jmespath.search("a.b.c[0].d[1][0]", dic_1)
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
1
③. 列表的切片操作,在這裡也可以適用:
import jmespath
dic_1 = ,]}
}}path = jmespath.search("a.b.c[0].d[1][5:10]", dic_1)
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
[5, 6, 7, 8, 9]
如果切片引數裡的步長是負數,則可以反向切片:
import jmespath
dic_1 = ,]}
}}path = jmespath.search("a.b.c[0].d[1][::-2]", dic_1)#步長是負數
print(path)
#執行結果
d:\daily\whatisyeild>python jmespath_demo.py
[9, 7, 5, 3, 1]
上面是一些常規的用法,但是jmespath還提供了乙個更強大的核心功能:projections,可以應用於元素集合的表示式,這個另起再講。 Updatepanel的基礎用法(1)
1.conditional 該updatepanel內的內容只會在該updatepanel內部有回發時更新 always 會在本頁面有回發時更新,而不管這個回發是不是在其updatepanel內部發生 盡量避免使用always,因為它會在每次頁面有回發時都會進行更新 datetime.now dat...
react的基礎用法(1)
首先需要先安裝 npm init y react umd react.development.js react dom umd react dom.development.js babel standalone babel.min.js 在寫 的時候要把上面三個js檔案引入 每個專案都需要加 書寫的...
python基礎 格式化輸出1( 用法)
用法 1 整數的輸出 o oct八進位制 d dec十進位制 x hex十六進製制 2 浮點數輸出 1 格式化輸出 f 保留小數點後面六位有效數字 3f,保留3位小數字 e 保留小數點後面六位有效數字,指數形式輸出 3e,保留3位小數字,使用科學計數法 g 在保證六位有效數字的前提下,使用小數方式,...