Prozess,通过令牌替换进行令牌化字符串迭代,每次迭代调用一个接口

2024-09-29 01:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

老话题迭代。。。在我的例子中,我尝试标记一个简单的字符串。我有这样的想法:

{"clineTtype": "Portal", "username":"TOKEN1", "Password":"TOKEN2"}

。现在我得到了标记值的倍数TOKEN1: username1, username2 | TOKEN2: password1, password2

因为我需要一个dict返回值,所以我为每个值“列出”一个dict键+值(

{"clineTtype": "Portal", "username":"TOKEN1", "Password":"TOKEN2"}

所以输出必须是这样的:

{key1:"clineTtype": "Portal", "username":"username1", "Password":"password1", key2 : "clineTtype": "Portal", "username":"unsername2", "Password":"password2"}

我是用singleValue做的:

 if sclTokenProcessingTestStepsValue == "singleValue":
                                if "testStep."+sclTestStep+".url.tokenizedBody.numTokens" in dictTestStepKeysAndValues:
                                    sclNumTokensTestStepsValueStr = dictTestStepKeysAndValues.get("testStep."+sclTestStep+".url.tokenizedBody.numTokens")
                                    sclNumTokensTestStepsValue = int(sclNumTokensTestStepsValueStr)
                                    while sclNumTokensTestStepsValue > 0:
                                        sclTokenKey = "TOKEN"
                                        sclTokenKey += str(sclNumTokensTestStepsValue)
                                        if "testStep."+sclTestStep+".url.tokenizedBody.tokenProcessing.singleValue."+sclTokenKey in dictTestStepKeysAndValues:
                                            sclNumTokenValue = dictTestStepKeysAndValues.get("testStep."+sclTestStep+".url.tokenizedBody.tokenProcessing.singleValue."+sclTokenKey)
                                            sclToken = sclTokenizedBodyTestStepsValue.replace(sclTokenKey, sclNumTokenValue)
                                            sclTokenizedBodyTestStepsValue = sclToken
                                            sclNumTokensTestStepsValue -= 1
                                    sclBodyBuilderReturn = sclToken
                                    logging.info('tokenizedBody: %s' % sclBodyBuilderReturn)                
                                    return sclBodyBuilderReturn   

现在我尝试迭代:

elif sclTokenProcessingTestStepsValue == "iterating":
                                if "testStep."+sclTestStep+".url.tokenizedBody.numTokens" in dictTestStepKeysAndValues:
                                    sclNumTokensTestStepsValueStr = dictTestStepKeysAndValues.get("testStep."+sclTestStep+".url.tokenizedBody.numTokens")
                                    sclNumTokensTestStepsValue = int(sclNumTokensTestStepsValueStr)
                                    if "testStep."+sclTestStep+".url.tokenizedBody.tokenProcessing.iterating.TOKEN1" in dictTestStepKeysAndValues:
                                        sclTokenizedBodyNumValues = dictTestStepKeysAndValues.get("testStep."+sclTestStep+".url.tokenizedBody.tokenProcessing.iterating.TOKEN1")
                                        lstTokenizedBodyNumValues = []
                                        lstTokenizedBodyNumValues = sclTokenizedBodyNumValues.split(",")
                                        LenTokenizedBodyNumValues1 = len(lstTokenizedBodyNumValues)
                                        LenTokenizedBodyNumValues2 = len(lstTokenizedBodyNumValues)


                                        dictTest = {}
                                        while LenTokenizedBodyNumValues1 > 0:
                                            integer = []
                                            integer = sclTestStep +"-"+str(LenTokenizedBodyNumValues1)
                                            dictTest[integer] = sclTokenizedBodyTestStepsValue

                                            LenTokenizedBodyNumValues1 -= 1

                                        lstTokenValue = []
                                        while sclNumTokensTestStepsValue > 0:
                                            sclTokenKey = "TOKEN"
                                            sclTokenKey += str(sclNumTokensTestStepsValue)
                                            if "testStep."+sclTestStep+".url.tokenizedBody.tokenProcessing.iterating."+sclTokenKey in dictTestStepKeysAndValues:
                                                sclNumTokenValue = dictTestStepKeysAndValues.get("testStep."+sclTestStep+".url.tokenizedBody.tokenProcessing.iterating."+sclTokenKey)
                                                sclNumTokenValue = sclNumTokenValue
                                                lstTokenValue.append(sclNumTokenValue)
                                            sclNumTokensTestStepsValue -= 1


                                        lstAllValues = []
                                        for steps in lstTokenValue:
                                            nnewList = []
                                            nnewList = steps.split(",")
                                            for step in nnewList:
                                                lstAllValues.append(step)

                                        i = 0
                                        dictEnd = {}
                                        LenTokenizedBodyNumValues1 += 1
                                        for i in range(LenTokenizedBodyNumValues2):

                                            sclTest=(list(dictTest.values())[i])
                                            test = sclTest.replace("TOKEN"+str(LenTokenizedBodyNumValues1), lstAllValues[i])
                                            print(test)



Tags: inurlgetiftoken1iteratingteststeptokenizedbody