python返回结果取值字典取值、正则取值、jsonpath解析取值
做接⼝测试的时候,⼤部分情况下返回的是json数据,我们需要对返回的json断⾔。或者取出需要的值,下边介绍取值需要的数据的三种⽅法,正则和jsonpath可以解决不知道需要取出的值得位置的解决⽅法(数据值太多情况)
1. 常规的字典取值
result ={
"code":1,transform四种属性
"data":[
血细胞直方图怎么看{
"age":16,
"create_time":"2020-11-11",
"id":1,
"mail":"1172379@163",
"name":"guiyin",
"sex":"L"
},
{
"age":18,
"create_time":"2020-11-11",
"id":2,
"mail":"123445@163",
"name":"guiyin222",
"sex":"XXL"
}
],
"msg":"success!"
}
# 字典取值断⾔
assert result["code"]==1
assert result["msg"]=="success!"
assert result["data"][0]["name"]=="guiyin"
2. 正则取值
python请求并解析json数据⽐如我想判断返回的结果⾥⾯有没有 “name”: “guiyin” 并且你不知道它是 data 列表中的第⼏个,这种情况断⾔就写的很复杂了。
可以⽤万能的正则取值,正则只能是针对字符串取值,dict 对象先转 json 字符串。
3. jsonpath解析取值
jsonpath常⽤语法
import re
import json
import jsonpath as jsonpath
result ={
"code":1,
dwcss居中"data":[
{
"age":16,
"create_time":"2020-11-11",
"id":1,
"mail":"1172379@163",
"name":"guiyin",
"sex":"L"
},
{
"age":18,
"create_time":"2020-11-11",
"id":2,
"mail":"123445@163",
excel高级教程视频
"name":"guiyin222",
"sex":"XXL"
}
],
"msg":"success!"
}
# 断⾔data中包含"name": "guiyin"
result_to_json = json.dumps(result)
print(result_to_json)# 先转json
sqlitemanger# ⽅法1 正则取值
res = re.findall('"name": "(.+?)"', result_to_json)# 正则从json中取值print(res)
assert"guiyin"in res
# ⽅法2 直接判断包含
assert'"name": "guiyin"'in result_to_json
#jsonpath⽤法
msg = jsonpath.jsonpath(result,'$.msg')
print(msg)# 输出结果 ['success!']
names = jsonpath.jsonpath(result,'$..name')
print(names)# 输出结果 ['guiyin', 'guiyin222']
no = jsonpath.jsonpath(result,'$..guiyin')
print(no)# 不到是结果是 False
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论