• 在 Python 中解析 JSON 对象数组



    由于浏览器可以快速解析 JSON 对象,因此它们有助于在客户端和服务器之间传输数据。 本文将介绍如何使用Python的JSON模块传输和接收JSON数据。


    JavaScript 对象表示法

    JSON(JavaScript Object Notation)是一种数据交换语法,易于人们读写,易于计算机解析和生成并存储数据。

    它是一种不偏向语言的全文格式。 此外,Python 还包含一个名为 json 的库,我们可以使用它与 JSON 数据进行交互。

    JSON 的语法被视为 JavaScript 语法的一部分,其中还包括名称和值,因为名称前面有冒号 (😃 来表示数据,名称:值对之间用逗号分隔。

    对象位于大括号中,而数组元素位于方括号中,其中用逗号分隔每个值。 在开始解析 JSON 之前,Python 需要一些 JSON 来处理。

    我们必须首先设置一些东西。 首先创建一个 Python 文件,其中包含这些练习的代码。 然后,导入文件中的 JSON 模块。


    Python 中的 JSON 对象

    由于浏览器可以快速解析 JSON 对象,因此它们有助于在客户端和服务器之间传输数据。 字符串、整数(浮点数或整数)、布尔值、列表、null 或其他 JSON 对象都是 JSON 对象键可接受的值。

    在下面的示例中,创建了一个由字典填充的对象 json_string,将使用 json.load() 方法解析该对象中的数据,然后打印输出中显示的数据。

    示例代码:

    import json
    json_string = """
    {
        "Student": {
            "ID" : "3",
            "name": "kelvin",
            "Group": "A",
            "Program" : "BSSE"
        }
    }
    """
    data = json.loads(json_string)
    print (data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    输出:

    {'Student': {'ID': '3', 'name': 'kelvin', 'Group': 'A', 'Program': 'BSSE'}}
    
    • 1

    在 Python 中解析 JSON 对象数组

    JSON 数组的结构与 Python 括号列表的结构相同。 它们可能包括嵌套数组和与 JSON 对象字段值相同的数据类型。 使用内置包 json 的 json.loads() 函数将 JSON 字符串转换为 Python 对象。

    JSON 数据字符串由 json.loads() 函数解析,然后该函数提供包含 JSON 中所有数据的 Python 字典。 您可以通过使用名称或索引来引用对象,从该 Python 字典中获取解析后的数据。

    我们还可以检查字典中的嵌套 JSON 项。 使用关联的方法 json.load() 解析 JSON 文件(不带 s)。 在下面的示例中,我们使用 json.loads 来解析数组中的值。

    示例代码:

    import json
    json_string = """
    {
        "Student": {
            "ID" : "3",
            "name": "kelvin",
            "Group": "A",
            "Program" : "BSSE",
    
            "cars": [
                {"model": "BMW 330e", "mpg": 143},
                {"model": "Rolls-Royce Phantom EWB", "mpg": 18}
            ]
        }
    }
    """
    data = json.loads(json_string)
    print (data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    输出:

    {'Student': {'ID': '3', 'name': 'kelvin', 'Group': 'A', 'Program': 'BSSE', 'cars': [{'model': 'BMW 330e', 'mpg': 143}, {'model': 'Rolls-Royce Phantom EWB', 'mpg': 18}]}}
    
    • 1

    此示例通过 JSON 解码器将 JSON 数组转换为 Python 数组数据类型。 在 Python 对象中使用其索引可以从 JSON 数组中获取元素。

    示例代码:

    import json
    
    json_str = """
    {
      "Orders": [
        {"Id": 151},
        {"Id": 120},
        {"Id": 131},
        {"Id": 114}
      ]
    }
    """''
    data = json.loads(json_str)
    
    order_1_id = data['Orders'][0]['Id']
    order_2_id = data['Orders'][1]['Id']
    order_3_id = data['Orders'][0]['Id']
    order_4_id = data['Orders'][1]['Id']
    total = len(data['Orders'])
    
    print(f"Order #1: {order_1_id}, Order #2: {order_2_id}, Total Orders: {total}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出:

    Order #1: 151, Order #2: 120, Total Orders: 4
    
    • 1
  • 相关阅读:
    地下管廊可视化管理系统搭建
    海外监管机构出手制裁DeFi,去中心化成伪命题了吗?波卡将何去何从?
    Docker 安装 Redis
    朴素贝叶斯数据分类------
    基于Spring Boot的酒店客房管理系统
    ROS(1)话题模型
    初识设计模式 - 解释器模式
    Java-软考总结
    fork()写时复制原理
    【雷达】FMCW雷达系统信号处理建模与matlab仿真
  • 原文地址:https://blog.csdn.net/fengqianlang/article/details/133864203