美文网首页
Jsonpath快速去深层次的json

Jsonpath快速去深层次的json

作者: 山猪打不过家猪 | 来源:发表于2021-04-27 12:14 被阅读0次

    1.jsonpath

    image.png
    import jsonpath
     
     
    json_data1={
            "error_code": 0,
            "stu_info": [
                    {
                            "id": 1001,
                            "name": "橙汁",
                            "sex": "女",
                            "age": 33,
                            "addr": "上海市浦东新区城南路500弄105号",
                            "grade": "天蝎座",
                            "phone": "18300000000",
                            "gold": 10896,
                            "info":{
                                "card":6123492929293838,
                                "bank_name":'招商银行'
                            }
                    },
                    {
                            "id": 1002,
                            "name": "橙子",
                            "sex": "男",
                            "age": 40,
                            "addr": "陕西省西安市曲江新区",
                            "grade": "狮子座",
                            "phone": "18200000000",
                            "gold": 100
                    }
            ]
    }
     
     
    # 获取json_data1中所有phone字段值
    print(jsonpath.jsonpath(json_data1,'$..phone'))
    ['18300000000', '18200000000']
     
     
    # 获取json_data1中所有bank_name字段值
    print(jsonpath.jsonpath(json_data1,'$..bank_name'))
    ['招商银行']
     
     
    # 获取json_data1中info下所有字段值
    print(jsonpath.jsonpath(json_data1,'$..info.*'))
    [6123492929293838, '招商银行']
     
     
    # 获取json_data1中stu_info中第1个元素中grade字段值
    print(jsonpath.jsonpath(json_data1,'$.stu_info.[0].grade'))
    ['天蝎座']
    
    
    import jsonpath
     
     
    json_data2={
      "body": {
        "cityId": 605,
        "title": "本周行情聚焦",
        "weekDate": "07.06-07.12",
        "wechat": "tuboshikefu02",
        "button": "每月专家行情解析,免费参加",
        "reportList": [{
          "cityId": 605,
          "skuId": 13158,
          "skuFullName": "上海不够卖小区榜",
          "spuId": 20130,
          "spuName": "上海不够卖小区榜",
          "categoryName": "爆款报告",
          "skuPrice": 1100,
          "spuType": 1,
          "h5Url": "https://m.2boss.cn/trade/3051420769646018571885?skuIdAlias=3051483295561809939455",
          "reportTitle": "上海不够卖小区榜",
          "reportUrl": "https://2boss.oss-cn-hangzhou.aliyuncs.com/dr2_banner/banner_1592899866409",
          "reportContent": "【最新6月榜】各区最火热的小区,全新数据,那些才是真正最火的小区?各区库存去化周期排行榜。",
          "orderTime": 1593507849000
        }, {
          "cityId": 605,
          "skuId": 13162,
          "skuFullName": "上海涨涨涨小区榜",
          "spuId": 20134,
          "spuName": "上海涨涨涨小区榜",
          "categoryName": "爆款报告",
          "skuPrice": 1200,
          "spuType": 1,
          "h5Url": "https://m.2boss.cn/trade/3051443826783682574415?skuIdAlias=3051495335856701455454",
          "reportTitle": "上海涨涨涨小区榜",
          "reportUrl": "https://2boss.oss-cn-hangzhou.aliyuncs.com/dr2_banner/banner_1592900443037",
          "reportContent": "【最新6月榜】各区最有可能上涨小区,全新数据,帮你选最能升值的小区,各区房东溢价系数排行榜。",
          "orderTime": 1592980444000
        },{
               "id":111,
               "name":"橙子"
            }]
      },
      "resultCode": 0,
      "errMsg": ""
    }
     
     
     
     
    # 获取json_data2中reportList数组的第2个值
    print(jsonpath.jsonpath(json_data2, '$.body.reportList[1]'))
    [{'skuId': 13162, 'spuId': 20134, 'h5Url': 'https://m.2boss.cn/trade/3051443826783682574415?skuIdAlias=3051495335856701455454', 'orderTime': 1592980444000, 'cityId': 605, 'spuType': 1, 'reportUrl': 'https://2boss.oss-cn-hangzhou.aliyuncs.com/dr2_banner/banner_1592900443037', 'reportTitle': '上海涨涨涨小区榜', 'skuFullName': '上海涨涨涨小区榜', 'categoryName': '爆款报告', 'reportContent': '【最新6月榜】各区最有可能上涨小区,全新数据,帮你选最能升值的小区,各区房东溢价系数排行榜。', 'spuName': '上海涨涨涨小区榜', 'skuPrice': 1200}]
     
     
    # 获取json_data2中reportList数组的所有值
    print(jsonpath.jsonpath(json_data2, '$..reportList[0:]'))
    [{'spuName': '上海不够卖小区榜', 'reportContent': '【最新6月榜】各区最火热的小区,全新数据,那些才是真正最火的小区?各区库存去化周期排行榜。', 'reportUrl': 'https://2boss.oss-cn-hangzhou.aliyuncs.com/dr2_banner/banner_1592899866409', 'cityId': 605, 'skuPrice': 1100, 'spuType': 1, 'h5Url': 'https://m.2boss.cn/trade/3051420769646018571885?skuIdAlias=3051483295561809939455', 'skuId': 13158, 'reportTitle': '上海不够卖小区榜', 'categoryName': '爆款报告', 'spuId': 20130, 'orderTime': 1593507849000, 'skuFullName': '上海不够卖小区榜'}, {'spuName': '上海涨涨涨小区榜', 'reportContent': '【最新6月榜】各区最有可能上涨小区,全新数据,帮你选最能升值的小区,各区房东溢价系数排行榜。', 'reportUrl': 'https://2boss.oss-cn-hangzhou.aliyuncs.com/dr2_banner/banner_1592900443037', 'cityId': 605, 'skuPrice': 1200, 'spuType': 1, 'h5Url': 'https://m.2boss.cn/trade/3051443826783682574415?skuIdAlias=3051495335856701455454', 'skuId': 13162, 'reportTitle': '上海涨涨涨小区榜', 'categoryName': '爆款报告', 'spuId': 20134, 'orderTime': 1592980444000, 'skuFullName': '上海涨涨涨小区榜'}, {'name': '橙子', 'id': 111}]
     
     
    # 获取json_data2中reportList数组中包含key为name的所有字段
    print(jsonpath.jsonpath(json_data2, '$..reportList[?(@.name)]'))
    [{'id': 111, 'name': '橙子'}]
     
     
    # 获取json_data2中reportList数组中skuPrice>1100的所有值
    print(jsonpath.jsonpath(json_data2, '$..reportList[?(@.skuPrice>1100)]'))
    [{'reportContent': '【最新6月榜】各区最有可能上涨小区,全新数据,帮你选最能升值的小区,各区房东溢价系数排行榜。', 'reportUrl': 'https://2boss.oss-cn-hangzhou.aliyuncs.com/dr2_banner/banner_1592900443037', 'categoryName': '爆款报告', 'cityId': 605, 'reportTitle': '上海涨涨涨小区榜', 'skuPrice': 1200, 'spuId': 20134, 'spuName': '上海涨涨涨小区榜', 'h5Url': 'https://m.2boss.cn/trade/3051443826783682574415?skuIdAlias=3051495335856701455454', 'spuType': 1, 'skuFullName': '上海涨涨涨小区榜', 'orderTime': 1592980444000, 'skuId': 13162}]
    
    

    相关文章

      网友评论

          本文标题:Jsonpath快速去深层次的json

          本文链接:https://www.haomeiwen.com/subject/qrpurltx.html