zoukankan      html  css  js  c++  java
  • Python解析JSON详解

    JSON 函数

    使用 JSON 函数需要导入 json 库:import json。

    函数  描述

    json.dumps  将 Python 对象编码成 JSON 字符串

    json.loads  将已编码的 JSON 字符串解码为 Python 对象

    json.dumps

    语法

    json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

    实例

    以下实例将数组编码为 JSON 格式数据:

    1 #!/usr/bin/python
    2 import json
    3 data = {'number': 6, 'name': 'Pythontab'}
    4 jsonData = json.dumps(data)
    5 print jsonData

    以上代码执行结果为:

    1 {"number": 6, "name": "Pythontab"}

    注意: 大家可能发现,执行上述转换以后,数据并没有发生变化,这里要说一下: 在json中双引号才是标注的字符串分割符号,单引号不标准。

    使用参数让 JSON 数据排序并格式化输出:

    1 #!/usr/bin/python
    2 import json
    3 data = {'number': 6, 'name': 'Pythontab'}
    4 jsonData = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
    5 print jsonData

    输出结果:

    1 {
    2     "name": "Pythontab",
    3     "number": 6
    4 }

    python 原始类型向 json 类型的转化对照表:

    json.loads

    json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

    语法

    json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

    实例

    以下实例展示了Python 如何解码 JSON 对象:

    1 #!/usr/bin/python
    2 import json
    3 jsonData = '{"number": 6, "name": "Pythontab"}'
    4 str = json.loads(jsonData)
    5 print str

    以上代码执行结果为:

    1 {u'number': 6, u'name': u'Pythontab'}

    json 类型转换到 python 的类型对照表:

    使用第三方库:Demjson

    Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。

    Github 地址:https://github.com/dmeranda/demjson 

    环境配置

    在使用 Demjson 编码或解码 JSON 数据前,我们需要先安装 Demjson 模块。

    方法1:源码安装

    $ tar -xvzf demjson-2.2.4.tar.gz

    $ cd demjson-2.2.4

    $ python setup.py install

    方法2:直接使用pip安装

    pip install Demjson

    JSON 函数

    函数  描述

    encode  将 Python 对象编码成 JSON 字符串

    decode  可以使用 demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。

    encode语法

    demjson.encode(self, obj, nest_level=0)

    decode语法

    demjson.decode(self, txt)

    使用都非常简单,我就不在这里举例啦~~

  • 相关阅读:
    C# 操作配置文件
    C# Excel操作类
    没有找到 mspdb100.dll 的解决办法
    工厂方法模式
    .Net互操作2
    The certificate used to sign “AppName” has either expired or has been revoked. An updated certificate is required to sign and install the application解决
    手机抓包xcode自带命令行工具配合wireshark实现
    expecting SSH2_MSG_KEX_ECDH_REPLY ssh_dispatch_run_fatal问题解决
    使用ssh-keygen设置ssh无密码登录
    远程复制文件到服务器
  • 原文地址:https://www.cnblogs.com/kindnull/p/6721688.html
Copyright © 2011-2022 走看看