python json接口数据提取_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 函数

1512022-20190328134530060-1017344811.png

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)

运行后的结果:

1512022-20190328151500732-371628074.png

2.同样json数据转化成python可识别的数据,对应的表关系如下

| | JSON | Python |

| +-------------------+---------------+

| +-------------------+---------------+

| | object | dict |

| +-------------------+---------------+

| | array | list |

| +-------------------+---------------+

| | string | unicode |

| +-------------------+---------------+

| | number (int) | int, long |

| +-------------------+---------------+

| | number (real) | float |

| +-------------------+---------------+

| |true | True |

| +-------------------+---------------+

| | false | False |

| +-------------------+---------------+

| | null | None |

| +-------------------+---------------+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值