Python 接口测试(四)
五:python数列化和反序列化
把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式
字符串解码为python数据对象。在python的标准库中,专门提供了json库
导入,查看json库的主要方法
import json
print(json.__all__)
见json库的主要方法:
['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder']
定义一个字典,通过json把它序列化为json格式的字符串,见实现的代码

import json
dict1={'name':'leizi','age':24,'address':'北京'}
print (u'未序列化前的数据类型为:',type(dict1))
print (u'未序列化前的数据:',dict1)
#对dict1进行序列化的处理
str1=json.dumps(dict1)
print (u'序列化后的数据类型为:',type(str1))
print (u'序列化后的数据为:',str1)

结果
未序列化前的数据类型为: <class 'dict'>
未序列化前的数据: {'age': 24, 'name': 'leizi', 'address': '北京'}
序列化后的数据类型为: <class 'str'>
序列化后的数据为: {"age": 24, "name": "leizi", "address": "\u5317\u4eac"}
我们再反序列化,把json格式的字符串解码为python的数据对象,见实现的代码和输出:

import json
dict1={'name':'雷子','age':24,'address':'北京'}
print (u'未序列化前的数据类型为:',type(dict1))
print (u'未序列化前的数据:',dict1)
#对dict1进行序列化的处理
str1=json.dumps(dict1)
print (u'序列化后的数据类型为:',type(str1))
print (u'序列化后的数据为:',str1)
#对str1进行反序列化
dict2=json.loads(str1)
print (u'反序列化后的数据类型:',type(dict2))
print (u'反序列化后的数据:',dict2)

输出:
未序列化前的数据类型为: <class 'dict'>
未序列化前的数据: {'age': 24, 'name': '雷子', 'address': '北京'}
序列化后的数据类型为: <class 'str'>
序列化后的数据为: {"age": 24, "name": "\u96f7\u5b50", "address": "\u5317\u4eac"}
反序列化后的数据类型: <class 'dict'>
反序列化后的数据: {'age': 24, 'name': '雷子', 'address': '北京'}
结合requests库,来看返回的json数据,具体代码为:

import json,requests
r=requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')
print (r.text,u'数据类型:',type(r.text))
#对数据进行反序列化的操作
dic=json.loads(r.text)
print (dic,u'数据类型:',type(dic))

结果:


{"desc":"OK","status":1000,"data":{"wendu":"4","ganmao":"将有一次强降温过程,且风力较强,极易发生感冒,请特别注意增加衣服保暖防寒。","forecast":[{"fengxiang":"北风","fengli":"4-5级","high":"高温 6℃","type":"多云","low":"低温 -2℃","date":"20日星期一"},{"fengxiang":"南风","fengli":"微风级","high":"高温 1℃","type":"小雪","low":"低温 -3℃","date":"21日星期二"},{"fengxiang":"北风","fengli":"3-4级","high":"高温 8℃","type":"阴","low":"低温 -2℃","date":"22日星期三"},{"fengxiang":"南风","fengli":"微风级","high":"高温 8℃","type":"晴","low":"低温 -2℃","date":"23日星期四"},{"fengxiang":"北风","fengli":"微风级","high":"高温 10℃","type":"晴","low":"低温 -2℃","date":"24日星期五"}],"yesterday":{"fl":"4-5级","fx":"北风","high":"高温 15℃","type":"多云","low":"低温 -2℃","date":"19日星期日"},"aqi":"37","city":"北京"}} 数据类型: <class 'str'>{'status': 1000, 'data': {'city': '北京', 'yesterday': {'fx': '北风', 'type': '多云', 'date': '19日星期日', 'fl': '4-5级', 'high': '高温 15℃', 'low': '低温 -2℃'}, 'forecast': [{'fengxiang': '北风', 'low': '低温 -2℃', 'fengli': '4-5级', 'date': '20日星期一', 'high': '高温 6℃



', 'type': '多云'}, {'fengxiang': '南风', 'low': '低温 -3℃', 'fengli': '微风级', 'date': '21日星期二', 'high': '高温 1℃', 'type': '小雪'}, {'fengxiang': '北风', 'low': '低温 -2℃', 'fengli': '3-4级', 'date': '22日星期三', 'high': '高温 8℃', 'type': '阴'}, {'fengxiang': '南风', 'low': '低温 -2℃', 'fengli': '微风级', 'date': '23日星期四', 'high': '高温 8℃', 'type': '晴'}, {'fengxiang': '北风', 'low': '低温 -2℃', 'fengli': '微风级', 'date': '24日星期五', 'high': '高温 10℃', 'type': '晴'}], 'ganmao': '将有一次强降温过程,且风力较强,极易发生感冒,请特别注意增加衣服保暖防寒。', 'wendu': '4', 'aqi': '37'}, 'desc': 'OK'} 数据类型: <class 'dict'>

Python 接口测试(四)的更多相关文章
- Python接口测试框架实战与自动化进阶☝☝☝
Python接口测试框架实战与自动化进阶☝☝☝ 一.fiddler在工作中的运用 1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...
- Python接口测试框架实战与自动化进阶✍✍✍
Python接口测试框架实战与自动化进阶 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看 ...
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 初学Python(四)——set
初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...
- python 函数“四剑客”的使用和介绍
python函数四剑客:lambda.map.filter和reduce. 一.lambda(匿名函数) 1. 学习lambda要注意一下几点: lambda语句被用来创建新的函数对象,并且在运行的时 ...
- Python第四天 流程控制 if else条件判断 for循环 while循环
Python第四天 流程控制 if else条件判断 for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Python第二天 ...
- Python接口测试实战1(上)- 接口测试理论
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战5(上) - Git及Jenkins持续集成
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
随机推荐
- elasticsearch报错expected <block end>, but found BlockMappingStart解决方法
我用的是elasticsearch2.4.0,在修改完配置文件就出现类似格式 expected <block end>, but found BlockMappingStart...... ...
- Sass之Compass学习笔记
compass Compass是Sass的工具库,就好像jQuery是js的库一样. sass有了compass的配合,就会更加事半功倍. Sass本身只是一个编译器,Compass在它的基础上,封装 ...
- sizeof(void)有什么用
偶然发现在C中sizeof(void)是合法的,于是,对它的作用产生了疑问.查阅资料在GNU文档中发现如下解释: In GNU C, addition and subtraction operatio ...
- 原创 :nfs软件服务利用ansible实现一键化部署
[root@m01 tools]# cat nfspeizhi.shcat >>/etc/exports<<EOF /data 172.16.1.0/24(rw,sync)EO ...
- 总结各种排序算法【Java实现】
一.插入类排序 1.直接插入排序 思想:将第i个插入到前i-1个中的适当位置 时间复杂度:T(n) = O(n²). 空间复杂度:S(n) = O(1). 稳定性:稳定排序. 如果碰见一个和插入元素相 ...
- JAVA设计模式:状态模式
声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7518226.html 一.引出状态模式 假设我们现在有一个糖果机项目,那么我们知道正常一般糖果机提供给用户 ...
- Mac环境下mysql初始化密码问题--If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.
个人在Mac上操作数据库,遇到的启动数据库问题的简单记录 1.苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) 2.进 ...
- 转:【Java集合源码剖析】Java集合框架
转载轻注明出处:http://blog.csdn.net/ns_code/article/details/35564663 Java集合工具包位于Java.util包下,包含了很多常用的数据结构, ...
- 【Beta阶段】第四次scrum meeting
Coding/OSChina 地址 1. 会议内容 学号 主要负责的方向 昨日任务 昨日任务完成进度 接下去要做 99 PM 查找适合的素材模块,和105一起把手势功能连接到APP上 100% 查阅换 ...
- 201521123098 《Java程序设计》第3周学习总结
1. 本周学习总结 1. 学习了类的创建: 2. 学会利用快捷方式完成变量的getter和setter的设定: 3. 学会了静态变量和非静态变量的区别和定义: 4. 学习了构造函数的基本编写方法. 大 ...