zoukankan      html  css  js  c++  java
  • 使用jsonpath解析多层嵌套的响应信息

    from jsonpath import jsonpath
    res_dict = {}
    res_dict = {"code":0, "msg":"success",}
    res_dict = {
        "code": 0,
        "msg": "成功",
        "data": {
            "users": [
                {"name": "张三", "gender": "male", "age": 12},
                {"name": "李四", "gender": "female", "age": 15},
                {"name": "王五", "gender": "male", "age": 22},
                {"name": "赵六", "gender": "male", "age": 24},
            ],
            "goods": [
                {"name": "apple", "price": 15, "num": 200},
                {"name": "pear", "price": 18, "num": 100},
                {"name": "banana", "price": 16, "num": 210},
            ]
        } 
    }
    
    print(jsonpath(res_dict, "$.msg"))  # 逐级取值,*代表任意节点,..表示任意路径
    ['成功'] 

    print(jsonpath(res_dict, "$.data.*"))
    [[{
    'name': '张三', 'gender': 'male', 'age': 12}, {'name': '李四', 'gender': 'female', 'age': 15}, {'name': '王五', 'gender': 'male', 'age': 22}, {'name': '赵六', 'gender': 'male', 'age': 24}], [{'name': 'apple', 'price': 15, 'num': 200}, {'name': 'pear', 'price': 18, 'num': 100}, {'name': 'banana', 'price': 16, 'num': 210}]]

    print(jsonpath(res_dict, "$.data..[2]")) # 前两条数据
    
    
    [{'name': '王五', 'gender': 'male', 'age': 22}, {'name': 'banana', 'price': 16, 'num': 210}] 
    print(jsonpath(res_dict, "$..users[*].name")) ['张三', '李四', '王五', '赵六']
    print(jsonpath(res_dict, "$..users[*][2]")) #匹配结果为列表,没有数据,返回false
    False
    print(jsonpath(res_dict, "$.data.users[2]")) [{'name': '王五', 'gender': 'male', 'age': 22}]
    print(jsonpath(res_dict, "$.data.users[:2]")) [{'name': '张三', 'gender': 'male', 'age': 12}, {'name': '李四', 'gender': 'female', 'age': 15}]
    print(jsonpath(res_dict, "$..users[?(@.gender=='female')]"))
    False
    print(jsonpath(res_dict, "$..users[?(@.gender=='male')]")) [{'name': '张三', 'gender': 'male', 'age': 12}, {'name': '王五', 'gender': 'male', 'age': 22}, {'name': '赵六', 'gender': 'male', 'age': 24}]
  • 相关阅读:
    HDU 3549 基础网络流EK算法 Flow Problem
    HDU 1937 F
    HDU 1937 J
    HDU 1939 HE IS OFFSIDE
    HDU 3033 组合背包变形 I love sneakers!
    分组背包
    hdu1712 分组背包 ACboy needs your help
    hdu 1714 RedField
    HDU 1709 母函数天平问题 可出现减法的情况 The Balance
    HDU 1171 Big Event in HDU 母函数
  • 原文地址:https://www.cnblogs.com/godlove/p/11468854.html
Copyright © 2011-2022 走看看