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 ...
随机推荐
- Node.js的优点和缺点(转载)
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:FengqiAsia链接:http://www.zhihu.com/question/19653241/answer/1599 ...
- 24.Swap Nodes in Pairs (List; Two-Pointers)
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
- oracle之Sequences
产生这样的代码,运行即可
- Qt's Undo Framework
Overview of Qt's Undo Framework Introduction Qt's Undo Framework is an implementation of the Command ...
- mysql查询赋值、修改拼接字符串
sql中修改字符串类型的字段可以这么拼接:update tbName set UserName='abc'+UserName; 但mysql中就不行了,需要这样:update tbName set U ...
- gatttool的使用
1.使能hci接口 # hciconfig hci0 up 2.使用hcitool搜索BLE设备 # hcitool lescan LE Scan ...D0:39:72:BE:D2:26 (unkn ...
- [Selenium]怎样验证页面是否有无变化
验证方法:将两次的Dom结构进行对比 String beforeStr = (String) SeleniumUtil.getInnerHTML(page.getDriver(), page.getD ...
- 搭建jfinal框架时报 Could not load driverClass com.mysql.jdbc.Driver
搭建jfinal框架时报 Could not load driverClass com.mysql.jdbc.Driver 没有加载MySQL的驱动,你有没有把mysql的驱动包放到你项目的WEB-I ...
- 转 Spring AOP @Before @Around @After 等 advice 的执行顺序
转自:http://blog.csdn.net/rainbow702/article/details/52185827 情况一: 一个方法只被一个Aspect类拦截 正常情况: 异常情况: 情况二 ...
- sockaddr与sockaddr_in
struct sockaddr { unsigned short sa_family; char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.se ...