python接口自动化-json数据处理
前言
有些post的请求参数是json格式的,需要导入json模块进行处理,json是一种数据交换格式,独立于编程语言
一般常见的接口返回数据也是json格式的,我们在做判断的时候,往往只需要提取其中几个关键的参数就行,这时候就需要json来解析返回的数据了
一、json模块简介
1. json简介:json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式,常用于http请求中
2. 可以用 help(json) 查看对应的源码注释内容
Encoding basic Python object hierarchies::
>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print(json.dumps("\"foo\bar"))
"\"foo\bar"
>>> print(json.dumps('\u1234'))
"\u1234"
>>> print(json.dumps('\\'))
"\\"
>>> print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True))
{"a": 0, "b": 0, "c": 0}
>>> from io import StringIO
>>> io = StringIO()
>>> json.dump(['streaming API'], io)
>>> io.getvalue()
'["streaming API"]'
二、encode(python ---> json)
1.首先说下为什么要 encode?
python 里面 bool 值是 True 和 False ,
json 里面 bool 值是 true 和 false ,
注意区分大小写!!! 在 python 里面写的代码,传到json里,肯定识别不了,所以需要把 python 的代码经过 encode 后成为 json 可识别的数据类型
2.举个简单例子,下图中 dict 类型经过 json.dumps() 后变成 str,True 变成了 true,False 变成了 fasle
注:查看数据类型用 type 函数

3.以下对应关系表是从 json 模块的源码里面爬出来的 .python 的数据类,经过 encode 成 json 的数据类型,对应的表如下:
| | Python | JSON |
| +-------------------+---------------+
| +-------------------+---------------+
| | dict | object |
| +-------------------+---------------+
| | list, tuple | array |
| +-------------------+---------------+
| | str, unicode | string |
| +-------------------+---------------+
| | int, long, float | number |
| +-------------------+---------------+
| | True | true |
| +-------------------+---------------+
| | False | false |
| +-------------------+---------------+
| | None | null |
| +-------------------+---------------+
三、decode(json ---> python)
1.转换操作详见代码:
#conding:utf-8
import requests
import json
d = {
"a": None, "b": True, "c": False, "d": "JODIE", "e": ["1",11], "f": ("1r",27), "g": {"h": 3, "i": "17", "j": True}
}
print(type(d))
dict_json = json.dumps(d) #字典转json
print(type(dict_json))
print(dict_json)
print("--------------------------------------")
json_dict = json.loads(dict_json) #json 转字典
print(type(json_dict))
print(json_dict)
运行后的结果:

2.同样json数据转化成python可识别的数据,对应的表关系如下
| | JSON | Python |
| +-------------------+---------------+
| +-------------------+---------------+
| | object | dict |
| +-------------------+---------------+
| | array | list |
| +-------------------+---------------+
| | string | unicode |
| +-------------------+---------------+
| | number (int) | int, long |
| +-------------------+---------------+
| | number (real) | float |
| +-------------------+---------------+
| | true | True |
| +-------------------+---------------+
| | false | False |
| +-------------------+---------------+
| | null | None |
| +-------------------+---------------+
python接口自动化-json数据处理的更多相关文章
- Python接口自动化--Json数据处理 5
1.Json模块简介,全名JavaScript Object Notation,轻量级的数据交换格式,常用于http请求中. Encoding basic Python object hierarch ...
- python接口自动化5-Json数据处理
前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...
- python接口自动化--json解析神器jsonpath
前言 做接口测试的时候,大部分情况下返回的是json数据,我们需要对返回的json断言. 当返回的数据量比较大,并且嵌套的层级很深的时候,很多小伙伴不会取值,往往在返回结果取值上浪费很多时间.一直在寻 ...
- python接口自动化13-data和json参数傻傻分不清
前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参数,那么问题来了:到底什么时候该传json,什么时候该传data? 一.识别json参数 1.在前面 ...
- python接口自动化(十)--post请求四种传送正文方式(详解)
简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...
- python接口自动化-参数化
原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...
- python接口自动化 -参数关联(一)
原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...
- python接口自动化3-自动发帖(session)
前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢? (敲黑板!!!由于博客园最近登录机制变了,登录全部走cookie登录) 一.sessi ...
- python接口自动化1-发送get请求
前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了. 一.环境安装 1.用pip安装requests模块 >>pip in ...
随机推荐
- 常见hash算法
hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等条件中里面存取数据. ...
- ASP.NET开发中修改代码而不重启网站
我们在做网站开发的时候,通常是写好了一个功能就要进行测试,Visual Studio上点“Start Debugging”(快捷键是F5),这是调试模式,也有直接运行模式,“Start Without ...
- Java的Random类详解
Random类专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子(以当前时间作为种子),另一个构造器需要程序员显示传入一个long型整数的种子. Random类比Math类的rando ...
- building tool
Build Tool的含义是什么? building tool中文名称叫构建工具,BuildTools.jar是我们构建Bukkit,CraftBukkit,Spigot和Spigot-API的解决方 ...
- 如何使用SignTool签署应用程序包
备注 有关签署UWP应用程序包的信息,请参阅使用SignTool签署应用程序包. 了解如何使用SignTool对Windows应用商店应用包进行签名,以便部署它们.SignTool是Windows软件 ...
- Linux中Mysql的简介和安装
MySQL 简介 点击查看MySQL官方网站 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗 ...
- 从壹开始微服务 [ DDD ] 之五 ║聚合:实体与值对象 (上)
前言 哈喽,老张是周四放松又开始了,这些天的工作真的是繁重,三个项目同时启动,没办法,只能在深夜写文章了,现在时间的周四凌晨,白天上班已经没有时间开始写文章了,希望看到文章的小伙伴,能给个辛苦赞
- JavaScript 闭包小记
最近朋友面试被问到了 JS 闭包的问题,本人一时语塞,想起了袁华的一句话:“这道题太难了,我不会做,不会做啊!”. JS 闭包属于面向对象的一个重要知识点,特此本人又开始了一段说走就走的旅程. 闭包就 ...
- AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文 ...
- 机器学习之KNN原理与代码实现
KNN原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9670187.html 1. KNN原理 K ...