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 基础知识之字符串处理
Jan 06 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
django settings.py 配置文件及介绍
Jul 15 Python
python爬虫中多线程的使用详解
Sep 23 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
如何利用python检测图片是否包含二维码
Oct 15 Python
python excel多行合并的方法
Dec 09 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开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python实现代理服务功能实例
2013/11/15 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
Python流程控制语句的深入讲解
2020/06/15 Python
python合并多个excel文件的示例
2020/09/23 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
宿舍违规检讨书
2014/01/12 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
优秀教师获奖感言
2014/01/31 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
医院志愿者活动总结
2015/05/06 职场文书
辩论会主持词
2015/07/03 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书