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 1176 DP)
    搬寝室(HDU 1421 DP)
    FatMouse's Speed(HDU LIS)
    Bone Collector II(HDU 2639 DP)
    Palindrome(POJ 1159 DP)
    Proud Merchants(POJ 3466 01背包+排序)
    树的最大独立集
    Roads in the North(POJ 2631 DFS)
    Starship Troopers(HDU 1011 树形DP)
    Strategic game(POJ 1463 树形DP)
  • 原文地址:https://www.cnblogs.com/godlove/p/11468854.html
Copyright © 2011-2022 走看看