1. 怎麼使用python提取json文件中的欄位
例json文件,名字test.json,
{
"verson":"1.4.2",
"author":"johanna",
"type":"1"
}
python編碼:
首先讀取json文件內容,利用json.loads()轉化為dict類型,遍歷每一對key,val
importjson
importos
try:
t_str=open('./test.json','r').read()
t_json=json.loads(t_str)
fork,vint_json.items():
printk,v
exceptException,e:
printstr(e)
2. python中如何取列表中含有字典的,字典中的某一個值
在Python中,使用JsonPath提取字典中的值能解決復雜多層嵌套字典提取的問題。比如,若介面返回的json數據為
介面測試代碼如下:
要獲取code的值,使用`res.get("code")`即可。
如需提取第一個venderNo的值,使用JsonPath模塊可以實現,更多使用方式請參考官方文檔。
獲取字典中的所有key和value,定義期望結果為`expectdata={"code": "200", "data[0].venderNo":"8"}`。
列印所有key和value,代碼如下,用於校驗expectdata中的欄位值。
在介面自動化測試中,使用相對路徑而非絕對路徑,避免路徑不兼容問題。例如,項目目錄結構為:
測試文件需要獲取resources文件夾下的json文件內容,動態獲取json文件的相對路徑,然後讀取文件內容。
對於面試常見問題,如去除列表中的重復元素和判斷字元串是否對稱,提供相應測試代碼和結果。
3. PYTHON關於提取返回JSON結果中特定欄位的問題
實際上JSON就是Python字典的字元串表示,但是字典作為一個復雜對象是無法直接轉換成定義它的代碼的字元串,Python有一個叫
simplejson的庫可以方便的完成JSON的生成和解析,這個包已經包含在Python2.6中,就叫json 主要包含四個方法:
mp和mps(從Python生成JSON),load和loads(解析JSON成Python的數據類型)mp和mps的唯一區別是
mp會生成一個類文件對象,mps會生成字元串,同理load和loads分別解析類文件對象和字元串格式的JSON
import json
dic = {
'str': 'this is a string',
'list': [1, 2, 'a', 'b'],
'sub_dic': {
'sub_str': 'this is sub str',
'sub_list': [1, 2, 3]
},
'end': 'end'
}
json.mps(dic)
#output:
#'{"sub_dic": {"sub_str": "this is sub str", "sub_list": [1, 2, 3]}, "end": "end", "list": [1, 2, "a", "b"], "str": "this is a string"}'
舉個簡單的例子就是:
import json
s = json.loads('{"name":"test", "type":{"name":"seq", "parameter":["1", "2"]}}')
print s
print s.keys()
print s["name"]
print s["type"]["name"]
print s["type"]["parameter"][1]