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中的进程分支fork和exec详解
Apr 11 Python
在Django的URLconf中使用多个视图前缀的方法
Jul 18 Python
Python 模块EasyGui详细介绍
Feb 19 Python
用Python3创建httpServer的简单方法
Jun 04 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
Python字典遍历操作实例小结
Mar 05 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
python判断链表是否有环的实例代码
Jan 31 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
python要安装在哪个盘
Jun 15 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 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/10/28 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
softmax及python实现过程解析
2019/09/30 Python
python多进程并行代码实例
2019/09/30 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
工商管理专业学生的自我评价
2013/10/01 职场文书
大学毕业感言一句话
2014/02/06 职场文书
出生医学证明书
2014/09/15 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
Python实现列表拼接和去重的三种方式
2021/07/02 Python
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL