python3字典:获取json响应值来进行断言的用法详解
在Python中我们做接口经常用到一些json的返回值我们常把他转化为字典,在前面的python数据类型详解(全面)中已经谈到对字典的的一些操作,今天我们就获取json返回值之后,然后转化为字典后的获取和其他的一些常用操作。
对字典的操作如下:
♦获取第一层字典中的数据:
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
2 print(dict['code'])
结果输出:
200
♦获取第二层字典中的数据:如果我们要获取value的值,查看发现value后的数据也是一个字典
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
2 print(dict['value'])
3 print(dict['value']['name'])
输出结果:
{'name': '嗯嗯', 'title': '', 'value': ''}
嗯嗯
♦也可以通过dict.get()来获取键对应的值
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
2 print(dict.get('code'))
3 print(dict.get('value').get('name'))
输出结果:
200
嗯嗯
♦dict.get()和dict['key']都可以用来获取键对应值,但是存在些许区别
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
2 print(dict.get('wo'))
3 print(dict['wo'])
输出结果:
1 None # print(dict.get('wo'))
2 Traceback (most recent call last): 3 File "C:/Users/zy/Documents/GitHub/python3/searchTest/test.py", line 3, in <module>
print(dict['wo'])
KeyError: 'wo'#print(dict['wo'])
原因:dict['key']只能获取存在的值,如果不存在则触发KeyError;dict.get(key, default=None),返回指定键的值,如果值不在字典中返回默认值None
字典的值是一个list
♦dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
我们发现value的数据和1中的情况不同,可以获取value的值判断是什么类型的数据
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
2 print(type(dict['value']))
输出结果:
<class 'list'>
根据列表特性 索引来获取list[0]查看数据,发现列表中的每个元素是字典,又可以根据字典的特性获取到supplier的值
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
2 print(dict['value'][0])
3 print(type(dict['value'][0]))
输出结果:
{'supplier': 'xyz', 'title': '我们在这里'}
<class 'dict'>
1 dict = {'code': '', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
2 print(dict['value'][0]['supplier'])
输出结果:
xyz
字典基本操作
♦遍历字典
1 # 遍历字典
2 for key in dict:
3 print(key + ':' + str(dict[key]))
4
5 输出结果:
6 code:200
7 message:
8 redirect:
9 value:{'name': '嗯嗯', 'title': '', 'value': ''}
♦遍历字典的键key
1 #遍历字典的键key
2 for key in dict.keys():
3 print(key)
4
5 输出结果:
6 code
7 message
8 redirect
9 value
♦遍历字典的值value
1 #遍历字典的值value
2 for value in dict.values():
3 print(value)
4
5 输出结果:
6 200
7
8
9 {'name': '嗯嗯', 'title': '', 'value': ''}
♦遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
1 #遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
2 for item in dict.items():
3 print(item)
4
5 输出结果:
6 ('code', '')
7 ('message', '')
8 ('redirect', '')
9 ('value', {'name': '嗯嗯', 'title': '', 'value': ''})
♦基本操作
1 #修改键值
2 dict['message'] = 'ok'
3 print(dict)
4 #增加新的键/值
5 dict['wo'] = 'apple'
6 print(dict)
7 #输出键是'code'的条目
8 del dict['code']
9 print(dict)
10 #清空字典所有条目
11 dict.clear()
12 print(dict)
13 #删除字典
14 del dict
15 print(dict)
16
17 输出结果:
18 {'code': '', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
19 {'code': '', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}, 'wo': 'apple'}
20 {'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}, 'wo': 'apple'}
21 {}
22 <class 'dict'>
转自:python3:jsonpath-rw处理Json对象,写的不错哦
python3字典:获取json响应值来进行断言的用法详解的更多相关文章
- 循环(数组循环、获取json数据循环)、each()循环详解
return; // 退出循环(不满足,退出此次循环.下次满足条件,依然会走此循环)return false; //退出函数(退出所有) 一. 数组循环: html: <div class=&q ...
- python3字典:获取json响应值来进行断言
前言:在接口自动化测试中,最后都是需要将返回结果进行断言.本文按照实际情况举例说明字典各种操作,以及如何提取响应数据来进行断言 1.dict = {'code': '200', 'message': ...
- C++通过jsoncpp类库读写JSON文件-json用法详解
介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式. JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择. ...
- JSON详解+ C# String.Format格式说明+ C# ListView用法详解 很完整
JSON详解 C# String.Format格式说明 C# ListView用法详解 很完整
- python接口自动化(二十四)--unittest断言——中(详解)
简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言.这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京 ...
- Jmeter(二十一) - 从入门到精通 - JMeter断言 - 上篇(详解教程)
1.简介 最近由于宏哥在搭建自己的个人博客可能更新的有点慢.断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式.虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JM ...
- 浅谈Android项目----JSON解析(4种解析技术详解)
json简介 1.概念:json全称是javaScript object Notation,是一种并轻量级的数据交换格式. 2.特点: 1.本质就是具有特定格式的字符串 2.json完全独立于编程语言 ...
- Javascript获取图片原始宽度和高度的方法详解
前言 网上关于利用Javascript获取图片原始宽度和高度的方法有很多,本文将再次给大家谈谈这个问题,或许会对一些人能有所帮助. 方法详解 页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能 ...
- 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发
每天记录一点:NetCore获得配置文件 appsettings.json 用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...
随机推荐
- Python_02-控制语句
目录: 1 控制结构... 1.1 分支语句... 1.1.1 if语句的嵌套... 1.2 for循环... 1.2.1 Python 循环中的 ...
- 【BZOJ3489】A simple rmq problem【kd树】
题意 给出一个长度为n的序列,给出M个询问:在[l,r]之间找到一个在这个区间里只出现过一次的数,并且要求找的这个数尽可能大.如果找不到这样的数,则直接输出0.我会采取一些措施强制在线. 分析 预处理 ...
- oracle中如何修改process
转自https://blog.csdn.net/qq_35686181/article/details/52350922 oracle中修改process 在 oracle中,要经常查看proces ...
- Shrio03 Authenticator、配置多个Realm、SecurityManager认证策略
1 Authenticator 简介 1.1 层次结构图 1.2 作用 职责是验证用户帐号,是ShiroAPI中身份验证核心的入口点:接口中声明的authenticate方法就是用来实现认证逻辑的. ...
- 1-为什么java的main方法必须是静态的
为什么java的main方法必须是静态的 今天看类型信息时发现一个问题,不能再main方法中打印this关键字的信息,这时想起了之前的知识,不能再静态方法中调用this.理由很简单,this表示“ ...
- php解决时间超过2038年
问题 超过2038年的时间 php怎么处理? echo date('Y-m-d',2147483647); //date函数能处理的最大整数2147483647 ->2038-01-19 就是2 ...
- Gcc对头文件与库文件的搜索路径
一.简介 对头文件与库文件的搜索路径不太清楚,编译.运行时老碰到问题,ldd查看程序的链接时,总是出现unkown链接. 二.头文件 gcc 在编译时寻找所需要的头文件 : 1)搜寻会从-I开始 2) ...
- Linux select/poll和epoll实现机制对比
关于这个话题,网上已经介绍的比较多,这里只是以流程图形式做一个简单明了的对比,方便区分. 一.select/poll实现机制 特点: 1.select/poll每次都需要重复传递全部的监听fd进来,涉 ...
- code1135 选择客栈
首先,预处理三个数组. pre[x]表示在此之前颜色为x的客栈有多少个. f[x]表示在此之前的客栈中,某个点c,c的颜色为x,并且从c点到已经读入的点之间有费用小于p的客栈,这样的c点的个数 las ...
- macOS 安装设置 Tunnelblick (openvpn 替代)
1、下载.安装 2、准备好 openvpn 相关的文件,全部放在一个目录中.主要有以下几个: ca.crt client.crt client.key client.ovpn 3、打开 client. ...