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 相关文章推荐
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
Python读取txt某几列绘图的方法
Oct 14 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
Python简单I/O操作示例
Mar 18 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
Django中如何使用sass的方法步骤
Jul 09 Python
Python tkinter模版代码实例
Feb 05 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
pandas中对文本类型数据的处理小结
Nov 01 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
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python 如何在字符串中插入变量
2020/08/01 Python
浅谈python锁与死锁问题
2020/08/14 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
高中政治教学反思
2014/01/18 职场文书
音乐器材管理制度
2014/01/31 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python