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中pass语句用法实例分析
Apr 30 Python
pymongo为mongodb数据库添加索引的方法
May 11 Python
python相似模块用例
Mar 04 Python
python socket多线程通讯实例分析(聊天室)
Apr 06 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
python opencv实现gif图片分解的示例代码
Dec 13 Python
python读取raw binary图片并提取统计信息的实例
Jan 09 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
tensorflow-gpu安装的常见问题及解决方案
Jan 20 Python
学python需要去培训机构吗
Jul 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
供参考的 php 学习提高路线分享
2011/10/23 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
简洁的十分钟Python入门教程
2015/04/03 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
python实现二叉树的遍历
2017/12/11 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
python读取文件名并改名字的实例
2019/01/07 Python
python的re模块使用方法详解
2019/07/26 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
python实现扫雷游戏的示例
2020/10/20 Python
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
高分子材料与工程专业个人求职信
2013/12/15 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL
Nginx动静分离配置实现与说明
2022/04/07 Servers