python获取响应某个字段值的3种实现方法


Posted in Python onApril 30, 2020

近期将要对两个接口进行测试,第一个接口的响应值是第二个接口的查询条件。为了一劳永逸,打算写个自动化测试框架。因为请求和响应都是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中使用SAX解析xml实例
Nov 21 Python
Python中文件操作简明介绍
Apr 13 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python如何重载模块实例解析
Jan 25 Python
python实现电脑自动关机
Jun 20 Python
对python的输出和输出格式详解
Dec 08 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
Python调用C语言程序方法解析
Jul 07 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 Python
如何在python中执行另一个py文件
Apr 30 #Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 #Python
Python实现转换图片背景颜色代码
Apr 30 #Python
Python requests.post方法中data与json参数区别详解
Apr 30 #Python
python:解析requests返回的response(json格式)说明
Apr 30 #Python
python 串行执行和并行执行实例
Apr 30 #Python
Django Channel实时推送与聊天的示例代码
Apr 30 #Python
You might like
大师制作的中短波矿石收音机
2020/04/02 无线电
删除无限级目录与文件代码共享
2006/07/12 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
简单的Python调度器Schedule详解
2019/08/30 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
高级编程求职信模板
2014/02/16 职场文书
初中学生评语大全
2014/04/24 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书