国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(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)行提?。?/p>

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)行解析,文章中沒(méi)有太多的知識(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)開(kāi)發(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)推薦
男子在300公里高速沿途累計(jì)發(fā)現(xiàn)62具貓狗尸體,其中不少身穿寵物衣服,推測(cè)系帶貓狗上高速不放車內(nèi)遭遇意外

男子在300公里高速沿途累計(jì)發(fā)現(xiàn)62具貓狗尸體,其中不少身穿寵物衣服,推測(cè)系帶貓狗上高速不放車內(nèi)遭遇意外

大風(fēng)新聞
2026-02-28 11:54:08
5年資產(chǎn)縮水270億,賣酒套現(xiàn)1.1億,劉鑾雄終是向歲月低下了頭

5年資產(chǎn)縮水270億,賣酒套現(xiàn)1.1億,劉鑾雄終是向歲月低下了頭

八斗小先生
2026-02-28 17:24:32
6分鐘19個(gè)導(dǎo)彈連全軍覆沒(méi),82架戰(zhàn)機(jī)被擊落,此戰(zhàn)給我們敲響警鐘

6分鐘19個(gè)導(dǎo)彈連全軍覆沒(méi),82架戰(zhàn)機(jī)被擊落,此戰(zhàn)給我們敲響警鐘

混沌錄
2026-02-04 22:25:03
為什么交通部約談高德?業(yè)務(wù)全踩紅線,五天被約談三次

為什么交通部約談高德?業(yè)務(wù)全踩紅線,五天被約談三次

小蜜情感說(shuō)
2026-02-27 06:43:29
英國(guó)宣布參與對(duì)伊朗軍事行動(dòng) 戰(zhàn)機(jī)已升空

英國(guó)宣布參與對(duì)伊朗軍事行動(dòng) 戰(zhàn)機(jī)已升空

桂系007
2026-02-28 23:56:12
金正恩向主要領(lǐng)導(dǎo)干部贈(zèng)送新一代狙擊步槍

金正恩向主要領(lǐng)導(dǎo)干部贈(zèng)送新一代狙擊步槍

環(huán)球網(wǎng)資訊
2026-02-28 06:36:25
柬埔寨國(guó)王72歲了:沒(méi)錢沒(méi)權(quán),無(wú)妻無(wú)子,和89歲老母親相依為命

柬埔寨國(guó)王72歲了:沒(méi)錢沒(méi)權(quán),無(wú)妻無(wú)子,和89歲老母親相依為命

照見(jiàn)古今
2025-12-31 20:48:07
樊振東落選!世界杯名單公布,王勵(lì)勤說(shuō)到做到,溫瑞博成最大黑馬

樊振東落選!世界杯名單公布,王勵(lì)勤說(shuō)到做到,溫瑞博成最大黑馬

冷紫葉
2026-02-28 19:07:29
被停職審查、轉(zhuǎn)移格力資產(chǎn)、搞辦公室戀情,71 歲董明珠身上的謠言越來(lái)越離譜

被停職審查、轉(zhuǎn)移格力資產(chǎn)、搞辦公室戀情,71 歲董明珠身上的謠言越來(lái)越離譜

互聯(lián)網(wǎng)思維
2026-02-28 23:34:40
特朗普聲稱伊朗最高領(lǐng)袖哈梅內(nèi)伊身亡,此前曾遭遇多次暗殺,去年6月已布局完整繼承體系,1989年曾以總統(tǒng)身份訪華

特朗普聲稱伊朗最高領(lǐng)袖哈梅內(nèi)伊身亡,此前曾遭遇多次暗殺,去年6月已布局完整繼承體系,1989年曾以總統(tǒng)身份訪華

極目新聞
2026-03-01 07:51:03
美國(guó)軍力全球第一,敢打任何國(guó)家?俄潑冷水:這4國(guó)你敢打誰(shuí)?

美國(guó)軍力全球第一,敢打任何國(guó)家?俄潑冷水:這4國(guó)你敢打誰(shuí)?

近史談
2026-01-19 10:09:51
玄學(xué)真相:凡事“反著來(lái)”,你就贏了——這才是人生最高級(jí)的破局之道

玄學(xué)真相:凡事“反著來(lái)”,你就贏了——這才是人生最高級(jí)的破局之道

青蘋果sht
2026-02-27 06:28:52
阿曼外交大臣:美伊談判就濃縮鈾“零庫(kù)存”達(dá)成一致

阿曼外交大臣:美伊談判就濃縮鈾“零庫(kù)存”達(dá)成一致

參考消息
2026-02-28 11:09:36
“以為是六個(gè)博士,結(jié)果是六個(gè)送外賣的!”六個(gè)兒子征婚視頻火了

“以為是六個(gè)博士,結(jié)果是六個(gè)送外賣的!”六個(gè)兒子征婚視頻火了

阿凱銷售場(chǎng)
2026-03-01 01:46:42
疑似王一博被爆私密聊天記錄,鹿晗肖戰(zhàn)躺槍,工作室成已取證

疑似王一博被爆私密聊天記錄,鹿晗肖戰(zhàn)躺槍,工作室成已取證

娛文速遞
2026-02-28 10:24:07
特朗普下令:所有聯(lián)邦政府機(jī)構(gòu)將立即停用Anthropic

特朗普下令:所有聯(lián)邦政府機(jī)構(gòu)將立即停用Anthropic

財(cái)聯(lián)社
2026-02-28 05:45:05
楊紫自律生活:少吃多睡,告別不良習(xí)慣

楊紫自律生活:少吃多睡,告別不良習(xí)慣

草莓解說(shuō)體育
2026-03-01 10:45:01
要么投降,要么死在洞里——內(nèi)塔尼亞胡拒絕放走被困地道的哈馬斯

要么投降,要么死在洞里——內(nèi)塔尼亞胡拒絕放走被困地道的哈馬斯

桂系007
2025-11-05 23:52:21
不慣著!女子回婆家過(guò)年,車被妯娌砸爛,報(bào)警硬剛到底,結(jié)局亮了

不慣著!女子回婆家過(guò)年,車被妯娌砸爛,報(bào)警硬剛到底,結(jié)局亮了

川渝視覺(jué)
2026-02-28 09:15:48
2026鐵飯碗排名出爐!教師竟然跌到第9,第1名讓所有人都沉默了!

2026鐵飯碗排名出爐!教師竟然跌到第9,第1名讓所有人都沉默了!

金哥說(shuō)新能源車
2026-02-27 05:18:50
2026-03-01 12:12:49
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

小米超跑概念車全球首秀!殺入頂豪俱樂(lè)部

頭條要聞

伊朗伊斯蘭革命衛(wèi)隊(duì)總司令身亡

頭條要聞

伊朗伊斯蘭革命衛(wèi)隊(duì)總司令身亡

體育要聞

球隊(duì)主力全報(bào)銷?頂風(fēng)擺爛演都不演了

娛樂(lè)要聞

《江山為聘》:吳謹(jǐn)言陳哲遠(yuǎn)燃炸朝堂

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

中東局勢(shì)升級(jí) 如何影響A股、黃金和原油

汽車要聞

小米汽車2月交付超20000臺(tái) 雷軍:為新SU7量產(chǎn)作準(zhǔn)備

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

游戲
本地
健康
時(shí)尚
數(shù)碼

爆料稱《索尼克》游戲新作將會(huì)在今年年內(nèi)官宣

本地新聞

津南好·四時(shí)總相宜

轉(zhuǎn)頭就暈的耳石癥,能開(kāi)車上班嗎?

普通人穿衣不需要太復(fù)雜!顏色恰當(dāng)、搭配和諧,高級(jí)又耐看

數(shù)碼要聞

DDR4價(jià)格已連續(xù)11個(gè)月上漲

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