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之hello world
May 21 Python
python实现进程间通信简单实例
Jul 23 Python
Python中使用PDB库调试程序
Apr 05 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
python pyheatmap包绘制热力图
Nov 09 Python
python获取本机所有IP地址的方法
Dec 26 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python当中的array数组对象实例详解
Jun 12 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
python模拟实现分发扑克牌
Apr 22 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
鼠标图片振动代码
2006/07/06 Javascript
简单的JS多重继承示例
2008/03/13 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
人机交互程序 python实现人机对话
2017/11/14 Python
python代码过长的换行方法
2018/07/19 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
荷叶圆圆教学反思
2014/02/01 职场文书
学习交流会主持词
2014/04/01 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
法人身份证明书
2015/06/18 职场文书
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS