python获取响应某个字段值的3种实现方法
2020-05-01 12:07
1151 查看
近期将要对两个接口进行测试,第一个接口的响应值是第二个接口的查询条件。为了一劳永逸,打算写个自动化测试框架。因为请求和响应都是xml格式的,遇到的问题就是怎么获取xml响应的某一个值。
尝试了很多博客的方法,最终代码实现如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- import requests import re import unitest xmlhead=('xml格式报文头') xmlhead=('xml格式报文体') result =request.post(url,data={'xmlhead':xmlhead,'xmlbody':xmlbody}) #获取响应字符串的某一个值(可以对字符串采取下标切片方式,此处采用的是正则表达式) data='<key值>(.*?)</key值>' #将想要的值先用正则表达式替代 result_data=re.findall(data,result.text) #引入re模块,利用正则表达式finall函数去响应字符串result.text里匹配。
最好用re.match()或re.search()函数,因为我调用这两个函数一直报不存在此函数属性,所以调用了re.findall函数
而今天在看视频时,获悉了两种更简单获取响应字符串某个值的方法,
个人感觉比正则表达式思维给简洁,在此分享:
result_json=result.json() #引入json模块,将响应结果转变为字典格式 response_data=result_json[父元素1][子元素2] #获取想要的值
或
result_json=eval(result.text)[父元素1][子元素2]
#利用eval函数将字符串转变为字典,在字典中获取想要的value值
补充知识:python进行接口请求,第一个接口返回的数据作为第二个参数的入参
直接看代码吧!
from operator import pos #导入包 定义要使用那个类 import requests import json url = 'http://123.56.22.39:48083/web/v2/user/userLogin' date={ 'userName':'admin', 'password':'admin' } r=requests.post(url=url,data=date) print(r.status_code) print(r.text) print(r.json()['data']['token']) url2 = 'http://123.56.22.39:48083/web/v2/user/logout' date1={ 'userId':1, 'token':r.json()['data']['token'] } r2 = requests.post(url=url2,data=date1) print(r2.status_code) print(r2.text)
返回数据为
200 {"code":0,"msg":"请求成功","userId":0,"token":null,"data":{"role":1,"videoPower":"1","snAuthPower":"1","userId":1,"token":"9f88cdad3c3b4e748e5367fb55cba90e"}} 9f88cdad3c3b4e748e5367fb55cba90e #第一个接口返回的数据 200 {"code":0,"msg":"请求成功","userId":0,"token":null,"data":null}
第一个接口返回的token数据 作为第二个接口token的入参。
以上这篇python获取响应某个字段值的3种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- python实现获取客户机上指定文件并传输到服务器的方法
- Python获取服务器信息的最简单实现方法
- Python实现从百度API获取天气的方法
- Python实现获取本地及远程图片大小的方法示例
- Python获取电脑硬件信息及状态的实现方法
- python flask 服务器端实现接口,post,get 方式,参数获取方法
- Python之inspect模块实现获取加载模块路径的方法
- Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
- python 获取本机ip地址的两种实现方法
- python基于pygame实现响应游戏中事件的方法(附源码)
- python 三元条件判断的3种实现方法
- Python实现获取照片拍摄日期并重命名的方法
- Python实现获取邮箱内容并解析的方法示例
- python的xpath获取div标签内html内容,实现innerhtml功能的方法
- Python基于opencv调用摄像头获取个人图片的实现方法
- python实现删除列表中某个元素的3种方法
- python实现根据用户输入从电影网站获取影片信息的方法
- 【Android开发经验】利用反射机制,获取类的字段、方法、并实现简单调用
- Python实现Sqlite将字段当做索引进行查询的方法
- Python获取linux主机ip的简单实现方法