zoukankan      html  css  js  c++  java
  • Python JSON

    JSON 是用于存储和交换数据的语法。

    JSON 是用 JavaScript 对象表示法(JavaScript object notation)编写的文本。

    Python 中的 JSON

    Python 有一个名为 json 的内置包,可用于处理 JSON 数据。

    json包

    json.loads()将json进行解析 转换成Python 字典

    json.dumps()将字典转换成json 字符串

    #引入json包
    import json
    
    #json.loads() 方法对json进行解析。结果将是 Python 字典。
    
    # 一些 JSON:
    x =  '{ "name":"Bill", "age":63, "city":"Seatle"}'
    
    #解析x
    y=json.loads(x)
    print(y)#{'name': 'Bill', 'age': 63, 'city': 'Seatle'}
    
    #json.dumps()把Python字典转换成json字符串
    z=json.dumps(y)
    print(z)#{"name": "Bill", "age": 63, "city": "Seatle"}
    print(z is y)#False

    '''
    您可以把以下类型的 Python 对象转换为 JSON 字符串:
    dict
    list
    tuple
    string
    int
    float
    True
    False
    None
    '''
    import json
    
    print(json.dumps({"name": "Bill", "age": 63}))  #{"name": "Bill", "age": 63}
    print(json.dumps(["apple", "bananas"]))  #["apple", "bananas"]
    print(json.dumps(("apple", "bananas")))  #["apple", "bananas"]
    print(json.dumps("hello"))  #"hello"
    print(json.dumps(42))  #42
    print(json.dumps(31.76))  #31.76
    print(json.dumps(True))  #true
    print(json.dumps(False))  #false
    print(json.dumps(None))  #null

    格式化结果

    上面的实例打印一个 JSON 字符串,但它不是很容易阅读,没有缩进和换行。

    json.dumps() 方法提供了令结果更易读的参数:

    使用 indent 参数定义缩进数:

    使用 separators 参数来更改默认分隔符: 默认值为("," , ":")

    使用 sort_keys 参数来指定是否应对结果进行排序

    json.dumps(x, indent=4, separators=(". " ,  " = "))

    #转换包含所有合法数据类型的 Python 对象:
    x = {
        "name": "Bill",
        "age": 63,
        "married": True,
        "divorced": False,
        "children": ("Jennifer", "Rory", "Phoebe"),
        "pets": None,
        "cars": [{
            "model": "Porsche",
            "mpg": 38.2
        }, {
            "model": "BMW M5",
            "mpg": 26.9
        }]
    }
    
    print(json.dumps(x))
    #格式化结果打印一个 JSON 字符串,但它不是很容易阅读,没有缩进和换行。
    '''
    {"name": "Bill", "age": 63, "married": true, "divorced": false, "children": ["Jennifer", "Rory", "Phoebe"], "pets": null, "cars": [{"model": "Porsche", "mpg": 38.2}, {"model": "BMW M5", "mpg": 26.9}]}
    '''
    
    #json.dumps(item,indent) 方法提供了令结果更易读的参数:
    #使用 indent 参数定义缩进数:
    print(json.dumps(x, indent=4))
    '''
    {
        "name": "Bill",
        "age": 63,
        "married": true,
        "divorced": false,
        "children": [
            "Jennifer",
            "Rory",
            "Phoebe"
        ],
        "pets": null,
        "cars": [
            {
                "model": "Porsche",
                "mpg": 38.2
            },
            {
                "model": "BMW M5",
                "mpg": 26.9
            }
        ]
    }
    '''
    #separators 参数
    #您还可以定义分隔符,默认值为(", " , ": "),这意味着使用逗号和空格分隔每个对象,使用冒号和空格将键与值分开:
    z=json.dumps(x, indent=4, separators=(". " , " = "))
    print(z)
    '''
    {
        "name" = "Bill".
        "age" = 63.
        "married" = true.
        "divorced" = false.
        "children" = [
            "Jennifer".
            "Rory".
            "Phoebe"
        ].
        "pets" = null.
        "cars" = [
            {
                "model" = "Porsche".
                "mpg" = 38.2
            }.
            {
                "model" = "BMW M5".
                "mpg" = 26.9
            }
        ]
    }
    '''
    
    
    #对结果排序
    # json.dumps() 方法提供了对结果中的键进行排序的参数:
    #使用 sort_keys 参数来指定是否应对结果进行排序:
    p=json.dumps(x, indent=4, sort_keys=True)
    print(p)
    '不知道什么作用 按什么顺序排列的'
    '''
    {
        "age": 63,
        "cars": [
            {
                "model": "Porsche",
                "mpg": 38.2
            },
            {
                "model": "BMW M5",
                "mpg": 26.9
            }
        ],
        "children": [
            "Jennifer",
            "Rory",
            "Phoebe"
        ],
        "divorced": false,
        "married": true,
        "name": "Bill",
        "pets": null
    }
    '''
  • 相关阅读:
    需求规格说明书
    需求规格说明书模板0.2版本
    需求规格说明书模板0.1版本
    万事开头难,团队一起盘!!
    工程开始了!(2019-03-04)
    SpringBoot RESTful API返回统一数据格式还不懂?
    Springboot读取配置文件中的属性
    java本地缓存的使用
    解决github访问不了和慢的问题2021-06-27
    Oracle DDL
  • 原文地址:https://www.cnblogs.com/lvlisn/p/15133472.html
Copyright © 2011-2022 走看看