zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python之jsonpath

Python jsonpath
2023-09-27 14:25:18 时间

https://www.cnblogs.com/Zhan-W/p/15650408.html

data = { "store": {
    "book": [ 
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
      },
      { "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 19.95
    }
  }
}

 

 

例子(里面有个. 和.. 的用法不错)

import jsonpath


import jsonpath

testdata = {    
	"code": 0,    
	"status": 1,
	"data": {
	"list": [
            {
                "stockOutId": "1467422726779043840",
                "orderId": "1467422722362441728",
                "id": "1467422722362441728",
                "stockOutStatus": {
                    "name": "待出库",
                    "value": 0,
                    "description": "待出库"
                },
                "orderStatus": {
                    "name": "待付款",
                    "value": 0,
                    "description": "待付款"
                },
            },
            {
                "stockOutId": "1467512423597473792",
                "orderId": "1467512420523048960",
                "id": "1467512420523048960",
                "stockOutStatus": {
                    "name": "待出库",
                    "value": 0,
                    "description": "待出库"
                },
                "stockOutNo": "CK2021120583602001"
            }
        ],
        "pageIndex": 0,
        "pageSize": 50,
        "total": 2,
        "pageCount": 1,
        "data": {
            "addRepairOrder": True,
            "cancelOrder": True
        }
    },
    "name":123,
    "message": "操作成功。",
    "isSuccessed": True
}


# # --------------------------------------------------------常规匹配:
# print(testdata["message"])

# ---------------------------------------------------------使用jsonpath匹配
# jsonpath匹配(取出来是个列表)    -----把第一层‘name’字段的值都取出来
print(jsonpath.jsonpath(testdata, '$.name'))
# jsonpath匹配(取出来是个列表)    -----把所有为‘name’字段的值都取出来
print(jsonpath.jsonpath(testdata, '$..name'))
# # 去列表
# print(jsonpath.jsonpath(testdata, '$..name')[0])
# # 匹配data下的所有键的值,已list类型返回
# print(jsonpath.jsonpath(testdata, '$.data.*'))

 

 

以前jmeter也有类似的笔记

https://www.cnblogs.com/kaibindirver/p/11951874.html

https://www.cnblogs.com/kaibindirver/p/8939899.html

 

http://www.atoolbox.net/Tool.php?Id=792