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的常见命令注入威胁
Feb 18 Python
python调用cmd命令行制作刷博器
Jan 13 Python
简单说明Python中的装饰器的用法
Apr 24 Python
Python Queue模块详细介绍及实例
Dec 27 Python
python和ruby,我选谁?
Sep 13 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
Python元组及文件核心对象类型详解
Feb 11 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
Django框架 信号调度原理解析
Sep 04 Python
python基于opencv实现人脸识别
Jan 04 Python
Python初学者必备的文件读写指南
Jun 23 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/04/26 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
js的逻辑运算符 ||
2010/05/31 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
python返回昨天日期的方法
2015/05/13 Python
python生成IP段的方法
2015/07/07 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
python 从list中随机取值的方法
2020/11/16 Python
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
饭店工作计划书
2014/01/10 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
个人作风剖析材料
2014/02/02 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
停电放假通知
2015/04/14 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
三星 3nm 芯片将于第二季度开始量产
2022/04/29 数码科技
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL