Bootstrap

Python使用jsonpath_ng

jsonpath_ng 是 Python 中一款解析和操作 JSON 数据的工具,它可以通过 JSONPath 语法来对 JSON 数据进行定位和提取,其用法类似于 XPath 语法对 XML 数据进行定位。

安装

  • 在使用 jsonpath_ng 之前,需要先安装该库。可以通过 pip 命令进行安装,如下所示:

    pip install jsonpath_ng
    

使用

取 dict 中的数据

  • 假设有如下 JSON 数据:

    {
        "code": 1,
        "result": {
            "msg": "success"
        }
    }
    
  • 获取 msg 字段的信息。可以通过如下代码来实现:

    from jsonpath_ng import parse
    
    data = {"code": 1, "result": {"msg": "success"}}
    
    msg_path = parse("$.result.msg")
    
    # 获取 msg 的信息
    msg_path.find(data)[0].value  # success
    
  • 在上面的代码中,我们首先导入了 jsonpath_ng 库,并将 JSON 数据转换为 Python 中的 dict 类型。接着,我们使用 parse 函数来解析 JSONPath 表达式 $.result.msg,并将其赋值给变量 msg_path。最后,我们通过调用 find 方法并传入 JSON 数据,来获取 msg 的值。

取 list 中的数据

  • 假设有如下 JSON 数据:

    {
        "code": 1,
        "result": [
            {"id": 1},
            {"id": 2}
        ]
    }
    
  • 获取 id 字段的信息。可以通过如下代码来实现:

    from jsonpath_ng import parse
    
    data = {"code": 1, "result": [{"id": 1}, {"id": 2}]}
    
    list_path = parse("$.result[*].id")
    
    # 获取 list 中 id 的信息
    list_path.find(data)[0].value  # 1
    list_path.find(data)[1].value  # 2
    
  • 在上面的代码中,同样使用 parse 函数来解析 JSONPath 表达式 $.result[*].id,并将其赋值给变量 list_path。通过调用 find 方法来获取 id 的值。需要注意的是,由于 result 字段是一个列表,需要使用 [*] 来表示列表中的所有元素。

;