当前位置: 首页 > 编程笔记 >

python获取响应某个字段值的3种实现方法

龙玺
2023-03-14
本文向大家介绍python获取响应某个字段值的3种实现方法,包括了python获取响应某个字段值的3种实现方法的使用技巧和注意事项,需要的朋友参考一下

近期将要对两个接口进行测试,第一个接口的响应值是第二个接口的查询条件。为了一劳永逸,打算写个自动化测试框架。因为请求和响应都是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实现删除列表中某个元素的3种方法,包括了python实现删除列表中某个元素的3种方法的使用技巧和注意事项,需要的朋友参考一下 python中关于删除list中的某个元素,一般有三种方法:remove、pop、del: 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 举例说明: [1, 3, 4, 5, 2, 6] 2.pop: 删除单个或多个元素,按位

  • 本文向大家介绍js实现下拉列表选中某个值的方法(3种方法),包括了js实现下拉列表选中某个值的方法(3种方法)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现下拉列表选中某个值的方法。分享给大家供大家参考,具体如下: 方法1: 方法2: 有一个如下的drop down 不在表单之内的下拉列表框mycombo的操作 在表单myform之内的下拉列表框combo2的操作 方法3: 可以

  • 本文向大家介绍在django中实现choices字段获取对应字段值,包括了在django中实现choices字段获取对应字段值的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ object.get_level_display() 补充知识:在Django中显示操作数据库的语句 需要在配置中加上这个 这样执行命令的时候,就会在控制台打印相应的sql语句了 以上这篇在

  • 本文向大家介绍C#判断一个类是否实现了某个接口3种实现方法,包括了C#判断一个类是否实现了某个接口3种实现方法的使用技巧和注意事项,需要的朋友参考一下 B为一个类,ISay为一个接口。 方法1: 方法2: 方法3:

  • 本文向大家介绍Python实现获取某天是某个月中的第几周,包括了Python实现获取某天是某个月中的第几周的使用技巧和注意事项,需要的朋友参考一下 找了半天竟然没找到,如何在Python的datetime处理上,获取某年某月某日,是属于这个月的第几周。 无奈之下求助同学,同学给写了一个模块。【如果你知道Python有这个原生的库,请不吝赐教】 我稍作整理记录在下。

  • 本文向大家介绍jQuery获取多种input值的简单实现方法,包括了jQuery获取多种input值的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 获取input的checked值是否为true: 第一种: if($("input[name=item][value='val']").attr('checked')==true) //判断是否已经打勾 --注:name即控件name属性,va