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模块的更多相关文章
- 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍
		
爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,load ...
 - python的json模块的dumps,loads,dump,load方法介绍
		
dumps和loads方法都在内存中转换, dump和load的方法会多一个步骤,dump是把序列化后的字符串写到一个文件中,而load是从一个文件中读取字符串 将列表转为字符串 >>&g ...
 - [py]requests+json模块处理api数据,flask前台展示
		
需要处理接口json数据,过滤字段,处理字段等. 一大波json数据来了 参考: https://stedolan.github.io/jq/tutorial/ https://api.github. ...
 - python requests方法post请求json格式处理
		
方法如下: import requestsimport json data = { 'a': 123, 'b': 456} ## headers中添加上content-type这个参数,指 ...
 - [ Python入门教程 ] Python中JSON模块基本使用方法
		
JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据.用于完成字符串和p ...
 - python发起post请求获取json数据使用requests方法
		
最普通的答案 我一直就觉得GET和POST没有什么除了语义之外的区别,自打我开始学习Web编程开始就是这么理解的 . 可能很多人都已经猜到了答案是: 1.GET 使用URL或Cookie传参.而POS ...
 - 全局变量    urllib模块     json模块
		
1.vars() 查看一个.py文件中的全局变量 print(vars()) #重点 __name__': '__main__ '__file__': 'C:/Users/lenovo/Pychar ...
 - 接口请求:get、post  (requests方法)
		
https://www.cnblogs.com/lanyinhao/p/9634742.html 比较全面 1.模块说明 requests是使用Apache2 licensed 许可证的HTTP库. ...
 - 我为什么要再给lua写一个json模块
		
最近要给自己编写的服务器加上json解析模块.根据我当前的项目,可以预测服务器中使用json的地方: 通信.由于与客户端通信使用google protocolbuffer,仅在与SDK通信中使用jso ...
 
随机推荐
- 电阻存储器为edge-AI提供了仿生架构
			
电阻存储器为edge-AI提供了仿生架构 Resistive memories enable bio-inspired architectures for edge AI 近年来,脑启发计算领域的研究 ...
 - HAL库|神器cubemx的正确打开方式
			
前言 工欲善其事,必先利其器.HAL库的开发不一定必须使用cubemx,但是使用了cubemx,你绝对不会后悔.基于一些小伙伴对cubemx的使用还有一些疑问,本次小飞哥从新建工程到生成工程,编写应用 ...
 - SpringBoot原理深入及源码剖析(一) 依赖管理及自动配置
			
前言 传统的Spring框架实现一个Web服务需要导入各种依赖jar包,然后编写对应的XML配置文件等,相较而言,SpringBoot显得更加方便.快捷和高效.那么,SpringBoot究竟是如何做到 ...
 - Spring Cache缓存技术,Cacheable、CachePut、CacheEvict、Caching、CacheConfig注解的使用
			
前置知识: 在Spring Cache缓存中有两大组件CacheManager和Cache.在整个缓存中可以有多个CacheManager,他们负责管理他们里边的Cache.一个CacheManage ...
 - JAVA面向对象详细总结
			
面向对象概念 所有操作基于对象进行操作实现 面向对象的三大特征 封装.继承.多态 类:具有相同特征和行为物体的统称 在java中类的定义语法: [修饰符] class 类名{ 属性 ...
 - 【NX二次开发】Block UI 多行字符串
			
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
 - Luatools v2烧录教程(适用于2G、4G Cat.1、4G Cat.4模块)
			
目录,可以根据需要直接点击跳转: 下载LuaTools工具 2G模块烧写教程(Air2xx系列.Air8xx系列) 连接模块 刷入AT版本的lod 刷入任意的lod固件 下载lua脚本文件 [4G 模 ...
 - 『动善时』JMeter基础 — 49、使用JMeter自身代理录制APP测试脚本
			
目录 1.测试计划内包含的元件 2.HTTP代理服务器的设置内容 3.设置手机的代理服务器 4.录制脚本 5.查看录制的脚本 6.HTTP代理服务器的排除模式 7.保存脚本 8.注意坑点 录制脚本只不 ...
 - 电容三点式振荡电路详解及Multisim实例仿真
			
电容三点式振荡器也称考毕兹(Colpitts,也叫科耳皮兹)振荡器,是三极管自激LC振荡器的一种,因振荡回路中两个串联电容的三个端分别与三极管的三个极相接而得名,适合于高频振荡输出的电路形式之一.电容 ...
 - VueJs(16)---Nuxt引入mavon-editor插件实现markdown功能
			
Vue引入mavon-editor插件实现markdown功能 说明 mavon-editor是一款基于Vue的markdown编辑器,因为当前项目是采用Nuxt,所以这里所展示的教程是针对Nuxt引 ...