五: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 接口测试(四)的更多相关文章

  1. Python接口测试框架实战与自动化进阶☝☝☝

    Python接口测试框架实战与自动化进阶☝☝☝  一.fiddler在工作中的运用  1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...

  2. Python接口测试框架实战与自动化进阶✍✍✍

    Python接口测试框架实战与自动化进阶  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看 ...

  3. 简学Python第四章__装饰器、迭代器、列表生成式

    Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...

  4. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  5. 初学Python(四)——set

    初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...

  6. python 函数“四剑客”的使用和介绍

    python函数四剑客:lambda.map.filter和reduce. 一.lambda(匿名函数) 1. 学习lambda要注意一下几点: lambda语句被用来创建新的函数对象,并且在运行的时 ...

  7. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  8. Python接口测试实战1(上)- 接口测试理论

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  9. Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  10. Python接口测试实战5(上) - Git及Jenkins持续集成

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

随机推荐

  1. jQuery DOM对象区别与联系

    对两种对象类型的定义,只要能理解并转换成自己的说法就可以,不用死板按照资料所写 jQuery对象(jq对象)其实就是通过jquery类库选择器获得的对象(或者说是通过$获取的对象或者说是通过jquer ...

  2. fileZilla 设置 记录一笔 以防忘记

  3. 性能测试系列学习 day1

    性能测试的最终目标是为了最大限度的满足用户的需求,我们通常为了达到以下目标而进行性能测试: (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策: (2 ...

  4. SVG图案

    前面的话 给SVG元素应用填充和描边,除了使用纯色和渐变外,还可以使用图案.本文将详细介绍SVG图案 概述 <pattern>可以实现重复的效果,在canvas中被翻译为模式,而在SVG中 ...

  5. Grails笔记二:grails 2.4.3版本下generate-*失效问题解析

    最近在学grails框架,因为其敏捷性让我非常喜欢,不过有点让人恼怒的是也许因为grails框架太新了,所以关于grails的书籍很少,而且市面上的书籍大部分都是2007或者2009年的,官方文档又都 ...

  6. Linux-insmod/rmmod/lsmod驱动模块相关命令(10)

    insmod:加载模块 参数: -f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入.-k 将模块设置为自动卸除.-m 输出模块的载入信息.-o   <模块名称 ...

  7. python怎么导入自定义函数

    python 编程中经常需要调用自己定义的函数,在大型程序中自定义的函数一般会和main函数分开,这么主要讲下在不同文件下定义的函数怎么调用: 首先在有文件夹test_python文件夹下有main. ...

  8. 客户端与服务端,java与Android跨平台服务

  9. Spring mvc 转发、重定向

    spring控制器最后返回一个ModelAndView(urlName),其中urNamel可以是一个视图名称,由视图解析器负责解析后将响应流写回客户端;也可以通过redirect/forward:u ...

  10. vSphere笔记01~02

    Vmware vsphere 虚拟化 云和大数据的底层!!!! 分类 1.开源:openstack:Linux:难(无图形化) nosqleasystack公司 2.企业版本:vsphere sdn! ...