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 文件和路径操作函数小结
Nov 23 Python
python算法学习之基数排序实例
Dec 18 Python
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
Python算法中的时间复杂度问题
Nov 19 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
Python 虚拟环境工作原理解析
Dec 24 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
python实现三阶魔方还原的示例代码
Apr 28 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
php escape URL编码
2008/12/10 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
使用js 设置url参数
2013/07/08 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
django之状态保持-使用redis存储session的例子
2019/07/28 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
PageFactory设计模式基于python实现
2020/04/14 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
瑜伽国际:Yoga International
2018/04/18 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
主题酒店策划书
2014/01/28 职场文书
公司薪酬管理制度
2014/01/31 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
文艺委员竞选稿
2015/11/19 职场文书
Python 统计序列中元素的出现频度
2022/04/26 Python