前言

有些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数据处理的更多相关文章

  1. Python接口自动化--Json数据处理 5

    1.Json模块简介,全名JavaScript Object Notation,轻量级的数据交换格式,常用于http请求中. Encoding basic Python object hierarch ...

  2. python接口自动化5-Json数据处理

    前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...

  3. python接口自动化--json解析神器jsonpath

    前言 做接口测试的时候,大部分情况下返回的是json数据,我们需要对返回的json断言. 当返回的数据量比较大,并且嵌套的层级很深的时候,很多小伙伴不会取值,往往在返回结果取值上浪费很多时间.一直在寻 ...

  4. python接口自动化13-data和json参数傻傻分不清

    前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参数,那么问题来了:到底什么时候该传json,什么时候该传data? 一.识别json参数 1.在前面 ...

  5. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  6. python接口自动化-参数化

    原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...

  7. python接口自动化 -参数关联(一)

    原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...

  8. python接口自动化3-自动发帖(session)

    前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢? (敲黑板!!!由于博客园最近登录机制变了,登录全部走cookie登录) 一.sessi ...

  9. python接口自动化1-发送get请求

    前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了. 一.环境安装 1.用pip安装requests模块 >>pip in ...

随机推荐

  1. mysql7笔记----遍历节点所有子节点

    mysql遍历节点的所有子节点 DELIMITER // CREATE FUNCTION `getChildrenList`(rootId INT) ) BEGIN ); ); SET sTemp = ...

  2. 【原】无脑操作:Gitblit服务器搭建及IDEA整合Git使用

    背景:虽然有GitHub.GitLab这样强大的Git仓库,但是涉及私有Git库要收费,所以自己动手搭建免费的用用 环境:windows 7 旗舰版.JDK 1.8.IDEA 2017 ------- ...

  3. ioremap_nocache() 函数的使用【转】

    本篇文章主要是在ioremap_nocache函数说明的基础上进行整理,加入该函数的用法简介. 函数原型 void __iomem * ioremap_nocache (unsigned long o ...

  4. 3星|《绩效使能:超越OKR》:较全较新资料汇编,华为实施经验少

    全书是关于绩效管理与OKR的比较新比较全的资料汇编.从泰勒的科学管理说起,一直到现代的KPI.最近的OKR.梳理了工业革命以来重要的绩效管理思想的具体方法.适应情况,详细讲OKR的来龙去脉.适应情况. ...

  5. 容器化时代我们应当选择Kubernetes

    前天发的文章<基于Kubernetes 构建.NET Core 的技术体系>,有同学问.NET Core上有Spring Cloud类似的平台吗? .NET Core出现这么久了,这个为云 ...

  6. C/C++中extern和static

    目录 1 extern概念 2 extern作用 2.1 变量声明 2.2 变量定义 2.3 声明和定义举例 3 为什么使用extern 4 怎么使用extern 4.1 基本数据类型定义变量 4.2 ...

  7. 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上)

    为了介绍使用ASP.NET Core构建GraphQL服务器,本文需要介绍一下GraphQL,其实看官网的文档就行. 什么是GraphQL? GraphQL 既是一种用于 API 的查询语言也是一个满 ...

  8. 【Android Studio安装部署系列】六、在模拟器上运行项目

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 在模拟器上运行项目的步骤.不过在实际开发中,一般不采用这种方式,因为影响电脑的运行,所以一般使用真机运行项目. 运行项目 创建模拟器 ...

  9. ActivityJump+ActivityManager【Activity之间的跳转和Activity任务栈管理】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装Activity跳转的方法以及实现Activity任务栈管理. 效果图   代码分析 ActivityJump:封装Activi ...

  10. .NET Core 控制台应用程序使用异步(Async)Main方法

    C# 7.1 及以上的版本允许我们使用异步的Main方法. 一.新建一个控制台应用程序 二.异步Main方法 我们直接将Main方法改为如下: static async Task Main(strin ...