zoukankan      html  css  js  c++  java
  • Python知识点记录四(JSON)

    JSON: JavaScript Object Notation(JavaScript对象标记)

    其本质为“一种轻量级的数据交换格式”。JSON字符串就是JSON的表现形式(载体)。

    符合JSON格式的字符串叫做JSON字符串。

    JSON的优点(较之XML):易于阅读、易于解析、网络传输效率高。非常适合作为跨语言交换数据。

    对于Python来说,其接收到的JSON格式的字符串的内涵有多种形式,比如“字典”、“字典作为元素的列表”,尽管其表现出来总是以字符串的形式。

    比如:

    #JSON object的字符串形式
    json_str = '{"name": "qiyue", "age": 18}'
    #JSON array的字符串形式
    json_str0 = '[{"name": "qiyue", "age": 18, "flag":false}, {"name": "bayue", "age": 19}]'

    这里需要注意JSON格式中内部必须用双引号表示字符串。

    一、JSON在Python中的反序列化

    如果Python中接收到了JSON信息,其内部提供了json模块,可以通过json.loads()方法将这个信息字符串“反序列化”为Python语言中的对应格式变量。

    import json
    #JSON object的字符串形式
    json_str = '{"name": "qiyue", "age": 18}'
    student = json.loads(json_str)
    print(type(student))
    print(student)
    #输出:
    '''
    <class 'dict'>
    {'name': 'qiyue', 'age': 18}
    '''
    import json
    #JSON array的字符串形式
    json_str0 = '[{"name": "qiyue", "age": 18, "flag":false}, {"name": "bayue", "age": 19}]'
    student0 = json.loads(json_str0)
    print(type(student0))
    print(student0)
    print(student0[0]['name'])
    print(student0[1]['age'])
    #输出:
    '''
    <class 'list'>
    [{'name': 'qiyue', 'age': 18, 'flag': False}, {'name': 'bayue', 'age': 19}]
    qiyue
    19
    '''

    二、Python至JSON格式的序列化

    序列化即是把Python中的数据转换为JSON格式的数据,通过json模块中的dumps()方法。

    import json
    
    a0 = 10
    a1 = 3.1415926
    a2 = 'Hello'
    a3 = [1,3,5,7,9]
    a4 = ('x', 'y', 'z')
    a5 = {1: 11, 2: 22, 3:33}
    
    s0 = json.dumps(a0)
    s1 = json.dumps(a1)
    s2 = json.dumps(a2)
    s3 = json.dumps(a3)
    s4 = json.dumps(a4)
    s5 = json.dumps(a5)
    
    print(s0)
    print(s1)
    print(s2)
    print(s3)
    print(s4)
    print(s5)
    
    '''
    输出:
    10
    3.1415926
    "Hello"
    [1, 3, 5, 7, 9]
    ["x", "y", "z"]
    {"1": 11, "2": 22, "3": 33}
    '''
    import json
    
    student = [
               {'name': 'qiyue', 'age': 18, 'flag': False},
               {'name': 'bayue', 'age': 19}
               ]
    
    json_str = json.dumps(student)
    print(type(json_str))
    print(json_str)
    '''
    输出:
    <class 'str'>
    [{"name": "qiyue", "age": 18, "flag": false}, {"name": "bayue", "age": 19}]
    '''

    三、JSON、JSON对象与JSON字符串

    JSON只是一种用于数据传输、交换的数据标准格式,是对ECMASCRIPT标准的某一方面的实现。

    JSON对象只成立于JavaScript语言中,对于其他语言如Python来说并不存在JSON对象这种说法,因为对Python而言,只有JSON字符串与之交互(序列化及反序列化)。)

  • 相关阅读:
    Centos 设置时区
    编译安装squid3.1亲测
    单点登录(SSO)的实现—通行证的基本原理
    squid反向代理基本概述及性能事项
    tmpfs加速并降低squid负载(一)
    sencha touch 2中list控件分组排序
    解决Sencha Touch 2 MVC部署App.json不被识别问题
    st大量参数提交方案参考
    Sencha Touch 载入base64格式的图片数据
    解决Sencha Touch 2 MVC部署App.json不被识别问题
  • 原文地址:https://www.cnblogs.com/tsembrace/p/9033584.html
Copyright © 2011-2022 走看看