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中 ? : 三元表达式的使用介绍
Oct 09 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
pytorch实现MNIST手写体识别
Feb 14 Python
python模拟点击网页按钮实现方法
Feb 25 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
python numpy中setdiff1d的用法说明
Apr 22 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编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
js中的this关键字详解
2013/09/25 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python如何实现一个刷网页小程序
2018/11/27 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
python中必要的名词解释
2019/11/20 Python
Python命令行click参数用法解析
2019/12/19 Python
python实现图像拼接
2020/03/05 Python
python如何输出反斜杠
2020/06/18 Python
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
servlet面试题
2012/08/20 面试题
企业承诺书怎么写
2014/05/24 职场文书
模特大赛策划方案
2014/05/28 职场文书
安全宣传标语口号
2014/06/06 职场文书
借名购房协议书范本
2014/10/06 职场文书
学校就业保障协议书
2019/06/24 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis