Requests方法 --- json模块
Posted teachertao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Requests方法 --- 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(u‘\\u1234‘)
"\\u1234"
>>> print json.dumps(‘\\\\‘)
"\\\\"
>>> print json.dumps("c": 0, "b": 0, "a": 0, sort_keys=True)
"a": 0, "b": 0, "c": 0
>>> from StringIO import StringIO
>>> io = StringIO()
>>> json.dump([‘streaming API‘], io)
>>> io.getvalue()
‘["streaming API"]‘
3、Encode (python->json )
a、首先说下为什么要encode,python里面bool值是True和False,json里面bool值是true和 false,并且区分大小写,这就尴尬了,明明都是 bool 值。
在python里面写的代码,传到json里,肯定识别不了,所以需要把python的代码经过encode后成为 json 可识别的数据类型。
b、举个简单例子,下图中 dict 类型经过 json.dumps()后变成 str,True 变成了 true,False变成了 fasle
c、以下对应关系表是从 json 模块的源码里面爬出来的.python 的数据类,经过 encode 成
json 的数据类型,对应的表如下
| | Python | JSON |
| +===================+===============+
| | dict | object |
| +-------------- -----+---------------+
| | list, tuple | array |
| +-------------------+---------------+
| | str, unicode | string |
| +-------------------+---------------+
| | int, long, float | number |
| +-------------------+---------------+
| | True | true |
| +-------------------+---------------+
| | False | false |
| +-------------------+---------------+
| | None | null |
| +-------------------+---------------+
4、 decode(json->python)
a、以Requests方法 -- session方法 为例:"success":true为例,我们其实最想知道的是 success 这个字段返回的是 True 还是 False
b、如果以 content 字节输出,返回的是一个字符串:"success":true,这样获取后面那个结果就不方便了
c、如果经过 json 解码后,返回的就是一个字典:u‘success‘: True,这样获取后面那个结果,就用字典的方式去取值:result2["success"]
d、同样 json 数据转化成 python 可识别的数据,对应的表关系如下
| +---------------+-------------------+
| | JSON | Python |
| +===============+===================+
| | object | dict |
| +---------------+-------------------+
| | array | list |
| +---------------+-------------------+
| | string | unicode |
| +---------------+-------------------+
| | number (int) | int, long |
| +---------------+-------------------+
| | number (real) | float |
| +---------------+-------------------+
| | true |
True |
| +---------------+-------------------+
| | false | False |
| +---------------+-------------------+
| | null |
None |
| +---------------+-------------------+
以上是关于Requests方法 --- json模块的主要内容,如果未能解决你的问题,请参考以下文章
Python requests模块paramsdatajson的区别
你还不会Python网络爬虫中的requests模块使用《一》