random.randint生成1000个随机的数,但是数可能会重复。解决重复随机数的问题?解决jsonpath提取返回数据重复的问题?

random.randint生成1000个随机的数,但是数可能会重复。解决重复随机数的问题?

会出现重复的实现方式:

while m < 1000:
          m += 1
          goodsCode = "1002" + str("%05d" % (random.randint(0, 99999)))

优化后不会出现重复随机数的实现方式:

goodsCode_lst = []
            while m < 1000:
                goodsCode = "1002" + str("%05d" % (random.randint(0, 99999)))
                if goodsCode not in goodsCode_lst:
                    m += 1
                    goodsCode_lst.append(goodsCode)

Python 之jsonpath提取返回数据列表中有多个字典,根据字典中某个匹配的字段取这个字典中其他字段的值的处理

如何运用Python提取接口返回的数据或者jmeter提取接口返回的数据?

通常我们用到jsonpath来提取数据。首先需要导包,from jsonpath import jsonpath。
jsonpath表达式:
$              ---->表示根节点
.              ---->一个点表示子节点
..             ---->两个点表示子孙节点
[]            ---->方括号表示选择子节点或者选择索引
[a,b]         ---->表示选择多个字段
@              ----->代表当前选中的节点
[?(过滤条件)]   ----》通过条件过滤数据
res = {
        "data": {
            "appList": [
                {
                    "appCode": "smartOps",
                    "appDoMain": 2,
                    "appId": 10000009,
                    "appIndex": "?apptoken=${apptoken}",
                    "appName": "自动化项目",
                    "appRootPath": "http://uat-uc.cuv.com.cn/login/",
                    "appType": 0,
                    "id": "3498308675110135424",
                    "status": ''
                },
                {
                    "appCode": "FEA-CCS",
                    "appDoMain": 4,
                    "appId": 10000001,
                    "appIndex": "?apptoken=${apptoken}",
                    "appName": "券系统",
                    "appRootPath": "http://inside-uat.cuv.com.cn/CouponCenterSystemAdmin/#/",
                    "appType": 0,
                    "id": "3563095252116668864",
                    "status": ''
                }
            ]
        },
        "message": "",
        "returncode": "00000"
    }
    print(jsonpath(res, "$.data.appList[?(@.appName=='券系统')].appId"))  # 筛选返回数据中索引中包含过滤条件的appId
    print(jsonpath(res, "$.data.appList[0,1].appId"))  # 筛选返回数据中索引为0和1中的所有appId
    print(jsonpath(res, "$.data.appList[0].[appId,appName]"))  # 筛选返回数据中索引为0中的所有appId,appName
    print(jsonpath(res, "$..appId"))  # 筛选返回数据中所有appId

运行结果:
[10000001]
[10000009, 10000001]
[10000009, ‘自动化项目’]
[10000009, 10000001]

接口返回一个列表中包含多个字典的json数据类型,需要取字典中appName为“券系统”appId的值
jsonpath(res, “ . d a t a . a p p L i s t [ ? ( @ . a p p N a m e = = ′ 券系 统 ′ ) ] . a p p I d " ) 或者 j s o n p a t h . j s o n p a t h ( r e s , " .data.appList[?(@.appName=='券系统')].appId") 或者 jsonpath.jsonpath(res, " .data.appList[?(@.appName==券系)].appId")或者jsonpath.jsonpath(res,".data.appList[?(@.appName==‘券系统’)].appId”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值