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 |
| +---------------+-------------------+

最新文章

  1. CSharpGL(32)矩阵与四元数与角度旋转轴的相互转换
  2. 自动更新补丁Security Update for Internet Explorer 10 for Windows Server 2008 R2 x64 Edition (KB2964358)失败
  3. Type.GetType(string)为空
  4. Maven学习(八)继承和聚合
  5. VS2010 + Entity FrameWork 4.4 +Mvc 4.0 出现的错误
  6. 为什么Web 设计会‘死’?
  7. mysql更新一个表里的字段等于另一个表某字段的值
  8. (一)使用springAPI以及自定义类 实现AOP-aop编程
  9. VIM中的寄存器简介
  10. C99标准中的部分新特性
  11. Jsp的include指令静态导入和动态导入的区别
  12. Lucene40SkipListWriter
  13. HDU3844Tour (好题)
  14. Python split()方法
  15. iOS 钥匙串存储用户数据
  16. 使用引用计数和copy-on_write实现String类
  17. c++入门之详细探讨类的一些行为
  18. pandas文件写入读取操作
  19. python的__getitem__
  20. JSR 规范目录

热门文章

  1. GPU微观物理结构框架
  2. CodeGen概述
  3. Fine-Tuning微调原理
  4. RabbitMQ由浅入深入门全总结(二)
  5. Kubernetes 实战——有状态应用(StatefulSet)
  6. Django(65)jwt认证原理
  7. 【题解】10-19秀秀的森林(forest)
  8. 【floyd】8.29题解-path
  9. 【Java】equals 和 == 的区别
  10. 关于MySql数据库误操作数据找回的办法