zoukankan      html  css  js  c++  java
  • 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(""fooar")
    ""fooar"
    >>> 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 |
    | +---------------+-------------------+

  • 相关阅读:
    前端开发常用工具
    Promise和setTimeout执行顺序
    化生汤
    与vue+element相对于的组合
    脾胃笔记
    中医脉象
    javacript 面向对象
    fabric 安装及使用
    jquery.tablesorter.js 学习笔记
    iframe 标签自适应高度和宽度
  • 原文地址:https://www.cnblogs.com/Teachertao/p/11144853.html
Copyright © 2011-2022 走看看