亚洲中文字幕乱码亚洲-蜜桃成熟视频在线观看-免费中文字幕视频在线-中国五十路熟妇洗澡视频-亚洲av伊人啪啪c-国产精品成人一区二区-国产自拍视频一区在线观看-成人一区不卡二区三区四区-亚洲情精品中文字幕99在线

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

學(xué)會(huì)這個(gè)Python庫(kù),接口測(cè)試so easy!

0
分享至

摘要:我們?cè)谧鼋涌跍y(cè)試時(shí),大多數(shù)返回的都是json屬性,我們需要通過(guò)接口返回的json提取出來(lái)對(duì)應(yīng)的值,然后進(jìn)行做斷言或者提取想要的值供下一個(gè)接口進(jìn)行使用。

但是如果返回的json數(shù)據(jù)嵌套了很多層,通過(guò)查找需要的詞,就很不方便,小編今天介紹一種python的第3方庫(kù)jsonpath。

jsonpath

jsonpath是使用一種簡(jiǎn)單的方法來(lái)提取給定JSON內(nèi)容。在我們做接口測(cè)試時(shí),目前流行的數(shù)據(jù)格式就是JSON格式的,當(dāng)碰到復(fù)雜JSON格式時(shí),我們可以使用JsonPath快速提取數(shù)據(jù)或者更新數(shù)據(jù)。

安裝:pip install jsonpath。

小編先通過(guò)正常的接口,獲取一段json數(shù)據(jù)供我們進(jìn)行測(cè)試使用:

import requests

#請(qǐng)求天氣的url地址

url='http://apis.juhe.cn/simpleWeather/query'

#請(qǐng)求參數(shù)

data={

"city":"上海",

"key":"331eab8f3481f37868378fcdc76cb7cd"

#發(fā)送post請(qǐng)求

r=requests.post(url,data=data)

j=r.json()

print(j)

通過(guò)執(zhí)行后,獲取一段我們想要的json數(shù)據(jù)。

"reason":"查詢成功!",

"result":{

"city":"上海",

"realtime":{

"temperature":"23",

"humidity":"25",

"info":"多云",

"wid":"01",

"direct":"西北風(fēng)",

"power":"2級(jí)",

"aqi":"58"

},

"future":[

"date":"2023-03-15",

"temperature":"10/23℃",

"weather":"多云",

"wid":{

"day":"01",

"night":"01"

},

"direct":"西南風(fēng)轉(zhuǎn)東北風(fēng)"

},

"date":"2023-03-16",

"temperature":"9/15℃",

"weather":"多云轉(zhuǎn)小雨",

"wid":{

"day":"01",

"night":"07"

},

"direct":"東南風(fēng)"

},

"date":"2023-03-17",

"temperature":"9/13℃",

"weather":"中雨轉(zhuǎn)小雨",

"wid":{

"day":"08",

"night":"07"

},

"direct":"東南風(fēng)轉(zhuǎn)北風(fēng)"

},

"date":"2023-03-18",

"temperature":"8/15℃",

"weather":"多云",

"wid":{

"day":"01",

"night":"01"

},

"direct":"北風(fēng)轉(zhuǎn)東南風(fēng)"

},

"date":"2023-03-19",

"temperature":"12/16℃",

"weather":"晴",

"wid":{

"day":"00",

"night":"00"

},

"direct":"東南風(fēng)"

},

"error_code":0

通過(guò)下標(biāo)提取

json數(shù)據(jù)有了,那么我們先用正常提取json的方法,進(jìn)行提取3-16日的天氣信息,看看如何提取。

data=result['result']['future'][1]

print(data)

------------------------------輸出結(jié)果---------------------------

{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'}

可以看到我們想要提取需要找到對(duì)應(yīng)的值,然后在繼續(xù)往下一層一層的查找,如果嵌套層數(shù)過(guò)多,容易出錯(cuò),返回信息格式發(fā)生改變,這里需要修改信息。

通過(guò)jsonpath提取

同樣的json數(shù)據(jù),我們通過(guò)jsonpath進(jìn)行提取:

data=jsonpath.jsonpath(result,'$..[?(@.date=="2023-03-16")]')

print(data)

-----------------------------輸出結(jié)果----------------------------

[{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'}]

通過(guò)上面的內(nèi)容會(huì)發(fā)現(xiàn),我們直接通過(guò)過(guò)濾器的方式來(lái)講我們的數(shù)據(jù)取出來(lái)了。有點(diǎn)類似我們的正則表達(dá)式。

jsonpath的其他用法

上面介紹的只是jsonpath的一個(gè)用法,下面小編介紹幾種jsonpath的其他用法。

通過(guò)$獲取屬性值內(nèi)容

#直接獲取到future的內(nèi)容

data=jsonpath.jsonpath(result,'$.result.future')

data1=jsonpath.jsonpath(result,'$.reason')

print(data)

print(data1)

-----------------------------輸出結(jié)果----------------------

[[{'date':'2023-03-15','temperature':'10/23℃','weather':'多云','wid':{'day':'01','night':'01'},'direct':'西南風(fēng)轉(zhuǎn)東北風(fēng)'},{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'},{'date':'2023-03-17','temperature':'9/13℃','weather':'中雨轉(zhuǎn)小雨','wid':{'day':'08','night':'07'},'direct':'東南風(fēng)轉(zhuǎn)北風(fēng)'},{'date':'2023-03-18','temperature':'8/15℃','weather':'多云','wid':{'day':'01','night':'01'},'direct':'北風(fēng)轉(zhuǎn)東南風(fēng)'},{'date':'2023-03-19','temperature':'12/16℃','weather':'晴','wid':{'day':'00','night':'00'},'direct':'東南風(fēng)'}]]

['查詢成功!']

通過(guò)【*】獲取對(duì)應(yīng)值

通過(guò)上面的json值,獲取到關(guān)于date的時(shí)間值。

data=jsonpath.jsonpath(result,'$.result.future.[*].date')

print(data)

-----------------------------輸出結(jié)果----------------------

['2023-03-15','2023-03-16','2023-03-17','2023-03-18','2023-03-19']

通過(guò)切片獲取對(duì)應(yīng)值

data=jsonpath.jsonpath(result,'$..future[0,1]')

print(data)

-----------------------------輸出結(jié)果----------------------

[{'date':'2023-03-15','temperature':'10/23℃','weather':'多云','wid':{'day':'01','night':'01'},'direct':'西南風(fēng)轉(zhuǎn)東北風(fēng)'},{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'}]

以上只是小編簡(jiǎn)單的介紹幾種jsonpath的使用方法,具體的使用需要大家通過(guò)項(xiàng)目上進(jìn)行結(jié)合使用,這里小編在推薦一個(gè)jsonpath的調(diào)試器,我們可以通過(guò)調(diào)試器進(jìn)行查看編寫是否正確:http://www.atoolbox.net/Tool.php?Id=792。

總結(jié)

小編通過(guò)簡(jiǎn)單的案例進(jìn)行介紹了如何通過(guò)jsonpath進(jìn)行提取json數(shù)值,方面我們?cè)谧鼋涌跍y(cè)試對(duì)于json的數(shù)據(jù)進(jìn)行解析,文章中沒有太多的知識(shí)點(diǎn),主要是熟能生巧,經(jīng)常使用,這樣在項(xiàng)目中才能靈活運(yùn)用。感謝您的閱讀,希望對(duì)您有所幫助。

最后:在我的V:atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
安徽阜陽(yáng)一服刑人員在監(jiān)獄突然死亡

安徽阜陽(yáng)一服刑人員在監(jiān)獄突然死亡

黃河新聞網(wǎng)呂梁
2026-04-20 10:35:48
雷霆大勝太陽(yáng)總分1-0:亞歷山大25分17罰 布克23分杰倫22+7+6

雷霆大勝太陽(yáng)總分1-0:亞歷山大25分17罰 布克23分杰倫22+7+6

醉臥浮生
2026-04-20 06:07:58
真香!神操作背后!老鷹為何愿意交易肯納德?

真香!神操作背后!老鷹為何愿意交易肯納德?

籃球?qū)嶄?/span>
2026-04-19 23:11:48
馬刺半場(chǎng)領(lǐng)先10分:文班21分對(duì)攻阿夫迪亞19分 楊瀚森未登場(chǎng)

馬刺半場(chǎng)領(lǐng)先10分:文班21分對(duì)攻阿夫迪亞19分 楊瀚森未登場(chǎng)

醉臥浮生
2026-04-20 10:21:55
這張照片絕對(duì)是李宇春最想刪掉的照片!

這張照片絕對(duì)是李宇春最想刪掉的照片!

可樂談情感
2026-04-20 03:34:03
世錦賽戰(zhàn)報(bào):16強(qiáng)決出5席!中國(guó)2勝2負(fù)1領(lǐng)先,世界亞軍4-10一輪游

世錦賽戰(zhàn)報(bào):16強(qiáng)決出5席!中國(guó)2勝2負(fù)1領(lǐng)先,世界亞軍4-10一輪游

球場(chǎng)沒跑道
2026-04-20 05:38:54
換機(jī)風(fēng)波:當(dāng)期待的新電腦變成信創(chuàng)“危機(jī)”

換機(jī)風(fēng)波:當(dāng)期待的新電腦變成信創(chuàng)“危機(jī)”

電腦吧評(píng)測(cè)室
2026-04-19 22:12:03
黑粉攻擊何潤(rùn)東風(fēng)波升級(jí)!博主怒撕:蹭熱度該適可而止,又老又丑

黑粉攻擊何潤(rùn)東風(fēng)波升級(jí)!博主怒撕:蹭熱度該適可而止,又老又丑

小徐講八卦
2026-04-19 15:19:03
一場(chǎng)1-2爆出大冷門,皇馬棄將爆發(fā):傳射建功,大巴黎主場(chǎng)淪陷

一場(chǎng)1-2爆出大冷門,皇馬棄將爆發(fā):傳射建功,大巴黎主場(chǎng)淪陷

足球狗說(shuō)
2026-04-20 07:10:43
金像獎(jiǎng)獲獎(jiǎng)名單出爐:梁家輝五封影帝,章子怡馬麗坐了一晚冷板凳

金像獎(jiǎng)獲獎(jiǎng)名單出爐:梁家輝五封影帝,章子怡馬麗坐了一晚冷板凳

萌神木木
2026-04-19 22:54:32
1983年,陳云親自批示:立即槍斃廣東縣委書記王仲,原因?yàn)楹危?>
    </a>
        <h3>
      <a href=莫地方
2026-04-20 09:30:18
塔圖姆25+11+7布朗26分,費(fèi)城雙槍打鐵,綠軍大勝76人刷爆紀(jì)錄

塔圖姆25+11+7布朗26分,費(fèi)城雙槍打鐵,綠軍大勝76人刷爆紀(jì)錄

釘釘陌上花開
2026-04-20 05:20:14
國(guó)際油價(jià)飆漲7%,黃金白銀、美股期指全線下挫,加密貨幣16萬(wàn)人爆倉(cāng),美軍向伊朗商船開火

國(guó)際油價(jià)飆漲7%,黃金白銀、美股期指全線下挫,加密貨幣16萬(wàn)人爆倉(cāng),美軍向伊朗商船開火

21世紀(jì)經(jīng)濟(jì)報(bào)道
2026-04-20 06:46:08
二十余年品質(zhì)夠抗打,一汽豐田通勤郊游一步到位

二十余年品質(zhì)夠抗打,一汽豐田通勤郊游一步到位

汽車網(wǎng)評(píng)
2026-04-20 09:33:33
大數(shù)據(jù)分析,在中國(guó),找個(gè)身高1米7年入20萬(wàn)的老公,到底有多難?

大數(shù)據(jù)分析,在中國(guó),找個(gè)身高1米7年入20萬(wàn)的老公,到底有多難?

深度報(bào)
2026-04-18 23:37:27
世錦賽戰(zhàn)報(bào):16強(qiáng)中國(guó)鎖定3席!世界冠軍連輸5局了,恐爆冷一輪游

世錦賽戰(zhàn)報(bào):16強(qiáng)中國(guó)鎖定3席!世界冠軍連輸5局了,恐爆冷一輪游

小火箭愛體育
2026-04-20 06:06:04
放棄幻想,若中日開戰(zhàn),世界各國(guó)的立場(chǎng)如何

放棄幻想,若中日開戰(zhàn),世界各國(guó)的立場(chǎng)如何

孝沛與世界
2026-04-20 01:24:36
美國(guó)妹子崩潰大哭:借9.6萬(wàn)美元上大學(xué),已還16.5萬(wàn),還欠22萬(wàn)

美國(guó)妹子崩潰大哭:借9.6萬(wàn)美元上大學(xué),已還16.5萬(wàn),還欠22萬(wàn)

賤議你讀史
2026-04-19 04:30:07
央視揭露:美國(guó)1年投1300萬(wàn)美元在中國(guó)搞“滲透”,俄羅斯、伊朗、古巴也是重點(diǎn)目標(biāo);細(xì)節(jié)曝光

央視揭露:美國(guó)1年投1300萬(wàn)美元在中國(guó)搞“滲透”,俄羅斯、伊朗、古巴也是重點(diǎn)目標(biāo);細(xì)節(jié)曝光

極目新聞
2026-04-19 11:39:23
輸不起,是很多國(guó)人刻在骨子里的巨嬰病

輸不起,是很多國(guó)人刻在骨子里的巨嬰病

浪子說(shuō)
2026-04-19 07:06:22
2026-04-20 11:23:00
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

藍(lán)色起源一級(jí)火箭完美回收 客戶衛(wèi)星未入軌

頭條要聞

失蹤女老板被找到 嫌犯曾改名整容還催警察"還我清白"

頭條要聞

失蹤女老板被找到 嫌犯曾改名整容還催警察"還我清白"

體育要聞

七大獎(jiǎng)項(xiàng)候選官宣!文班或全票DPOY

娛樂要聞

章子怡!增重20斤素顏拍新片

財(cái)經(jīng)要聞

月之暗面IPO迷局

汽車要聞

外觀非常驚艷 全新一代寶馬6系有望回歸

態(tài)度原創(chuàng)

旅游
親子
教育
家居
游戲

旅游要聞

去藝術(shù)現(xiàn)場(chǎng),赴一次深度游

親子要聞

普通家庭養(yǎng)娃補(bǔ)鈣,90% 家長(zhǎng)都補(bǔ)錯(cuò)了!

教育要聞

給孩子最深的滋養(yǎng):一半愛護(hù),一半需要

家居要聞

法式線條 時(shí)光靜淌

大司馬稱不想再玩《PUBG》:打的菜還總被噴!

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版