博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3字典:获取json响应值来进行断言的用法详解
阅读量:5796 次
发布时间:2019-06-18

本文共 3462 字,大约阅读时间需要 11 分钟。

在Python中我们做接口经常用到一些json的返回值我们常把他转化为字典,在前面的中已经谈到对字典的的一些操作,今天我们就获取json返回值之后,然后转化为字典后的获取和其他的一些常用操作。

对字典的操作如下:

  ♦获取第一层字典中的数据:

1 dict = {
'code': '200', 'message': '', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}}2 print(dict['code']) 结果输出:200

  ♦获取第二层字典中的数据:如果我们要获取value的值,查看发现value后的数据也是一个字典

1 dict = {
'code': '200', 'message': '', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}}2 print(dict['value'])3 print(dict['value']['name']) 输出结果:{
'name': '嗯嗯', 'title': '36', 'value': '123'}嗯嗯

   ♦也可以通过dict.get()来获取键对应的值

1 dict =  {
'code': '200', 'message': '', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}}2 print(dict.get('code'))3 print(dict.get('value').get('name'))输出结果:200嗯嗯

  ♦dict.get()和dict['key']都可以用来获取键对应值,但是存在些许区别

1 dict =  {
'code': '200', 'message': '', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}}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 
  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': '200', 'message': '', 'redirect': '', 'value': [{
'supplier': 'xyz', 'title': '我们在这里'}]}2 print(type(dict['value']))输出结果:

  根据列表特性 索引来获取list[0]查看数据,发现列表中的每个元素是字典,又可以根据字典的特性获取到supplier的值

1 dict = {
'code': '200', 'message': '', 'redirect': '', 'value': [{
'supplier': 'xyz', 'title': '我们在这里'}]}2 print(dict['value'][0])3 print(type(dict['value'][0]))输出结果:{
'supplier': 'xyz', 'title': '我们在这里'}
1 dict = {
'code': '200', '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:2007 message:8 redirect:9 value:{
'name': '嗯嗯', 'title': '36', 'value': '123'}
♦遍历字典的键key
1 #遍历字典的键key2 for key in dict.keys():3     print(key)4 5 输出结果:6 code7 message8 redirect9 value

  ♦遍历字典的值value

1 #遍历字典的值value2 for value in dict.values():3     print(value)4 5 输出结果:6 2007 8 9 {
'name': '嗯嗯', 'title': '36', 'value': '123'}
♦遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
1 #遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回2 for item in dict.items():3     print(item)4 5 输出结果:6 ('code', '200')7 ('message', '')8 ('redirect', '')9 ('value', {
'name': '嗯嗯', 'title': '36', 'value': '123'})

  ♦基本操作

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 dict15 print(dict)16 17 输出结果:18 {
'code': '200', 'message': 'ok', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}}19 {
'code': '200', 'message': 'ok', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}, 'wo': 'apple'}20 {
'message': 'ok', 'redirect': '', 'value': {
'name': '嗯嗯', 'title': '36', 'value': '123'}, 'wo': 'apple'}21 {}22

 转自:,写的不错哦

转载于:https://www.cnblogs.com/insane-Mr-Li/p/9144518.html

你可能感兴趣的文章
四、配置开机自动启动Nginx + PHP【LNMP安装 】
查看>>
LNMP一键安装
查看>>
SQL Server数据库概述
查看>>
Linux 目录结构及内容详解
查看>>
startx命令--Linux命令应用大词典729个命令解读
查看>>
华为3026c交换机配置tftp备份命令
查看>>
Oracle命令导入dmp文件
查看>>
OCP读书笔记(24) - 题库(ExamD)
查看>>
Http、TCP/IP协议与Socket之间的区别(转载)
查看>>
解决Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790
查看>>
.net excel利用NPOI导入oracle
查看>>
vrpie在Visio Studio 中无法调试的问题
查看>>
第六课:数据库的基本工具
查看>>
关于二叉树重构的思索
查看>>
$_SERVER['SCRIPT_FLENAME']与__FILE__
查看>>
skynet实践(8)-接入websocket
查看>>
系统版本判断
查看>>
关于Css选择器优先级
查看>>
My97DatePicker 日历插件
查看>>
0603 学术诚信与职业道德
查看>>