使用JSONSchema斷言

2022-04-07 19:03:50 字數 1129 閱讀 2886

對於複雜的json結構,雖然可以使用jsonpath快速提取相應的值。然而對於json響應的整體結構和各欄位型別,使用jsonschema驗證更加方便。

安裝方法:

pip install jsonschema
以上例中的響應結果為例:

, 

"headers": ,

"origin": "111.202.167.11",

"url": ""

}

整個json結構可以描述為,整體為object型別,包含args、headers、orgin、url四個屬性,其中args、headers是object型別,origin、url是字串型別,使用jsonschema語法描述如下:

,

"headers": ,

"origin": ,

"url":

}}

對於object物件,還可以使用required描述必須存在的屬性。對於args、headers還可以繼續新增properties描述其子屬性,對於字串還可以使用patten欄位描述其符合的真正表示式。

jsonschema中的型別分為string、number、integer、array、object、boolean、null七種型別。其中,number包含整數和浮點數,integer僅限整數。jsonschema每種型別常用的關鍵字如表3.3所示。

完整示例如下:

import requests

import jsonschema

res = requests.get('')

schema = ,

"age": }},

"headers": ,

"origin": \.\d\.\d\.\d"},

"url":

}} jsonschema.validate(res.json(), schema)

上例中,required限定,args必須有name和age兩個子屬性。

name欄位的pattern使用「^kevin$」表示,必須以k開頭,以n結尾,即完全等於kevin。

同樣,斷言通過時不會有任何輸出,斷言失敗是則會丟擲異常。

json schema 學習筆記

json schema 是對json資料進行資料結構描述的乙個協議,我們按照協議的規定,可以對json資料結構進行描述,也可以驗證json資料。在很多json編輯器中會用到json schema進行資料有效性的驗證。比如在vs code 中可以在工作區設定中指定每個檔案使用的schema,實現的效果...

C 斷言使用

程式一般分為debug和release版本,debug版本用於內部測試,release版本發行給使用者使用。斷言assert是僅在debug版本起作用的巨集,它用於檢查不應該發生的情況。在執行過程中,如果assert的引數為假,那麼程式就會中止 一般地還會出現提示對話,說明在什麼地方引發了asser...

C 使用斷言

程式一般分為debug版本和release版本,debug版本用於內部除錯,release版本發行給使用者使用。斷言assert是僅在debug版本起作用的巨集,它用於檢查 不應該 發生的情況。示例6 5是乙個記憶體複製函式。在執行過程中,如果assert的引數為假,那麼程式就會中止 一般地還會出現...