猿问

使用循环附加文本

我需要帮助,所以基本上我正在创建一个函数,我们将 URL 作为带参数的输入,然后它将修改参数的值,然后打印修改后的 URL。


def findingParams(url):

#url = url+'?name=aman&test=aman'

base_url = url.split('?')[0]

parameters = url.split('?')[1]

myparms = {}

myparms1 = []

payload = "modified_value"


if '&' in parameters:

    #['name=123', 'test=321']

    parameters =  parameters.split('&')

    for params in parameters:

        myparms1.append(params.split('=')[0])

        myparms[(params.split('=')[0])] = payload

        #['name', '123']

        #['test', '321']

    

    print(f'url = {url}\nparams = {myparms}')

    #here I want the ouput as modified parameter


else:

    #print(params.split('='))

    print(base_url)

    print(parameters)

    myparms1.append(parameters.split('=')[0])


    myparms[(parameters.split('=')[0])] = payload

    print(f'url = {url}\nparams = {myparms}')

    #['name', '123']


#myparms = {'name':'123', 'test':'321'}

    for i in myparms1:

        print(f'{base_url}?{i}={myparms[i]}')

        #base_url+?[params]=[payload]

我写了这个函数,这个函数可以很好地处理具有单个参数的 URL,例如:testme.com/test.php?name=123并且我还必须使其可以处理多个参数,但问题是我不知道如何使用 for 循环在 URL for 中附加值示例:如果我使用 for 循环,则输出如下


testme.com/test.php?name=modified_Value

testme.com/test.php?test=modified_Value

但我想要这样的网址


testme.com/test.php?name=modified_value&test=modified_value.


阿波罗的战车
浏览 92回答 2
2回答

慕神8447489

尝试使用临时变量在循环中构建 url,然后在最后打印,如下所示:result = f'{base_url}?'for i in myparms1:        result = result + f'{i}=myparms1[i]&'# remove extra & at end after last parameterresult = result[:-1]print(result)

蝴蝶不菲

#!/usr/bin/env python3def findingParams(url):    if "?" not in url:        print(url)    else:        base_url, parameters = url.split("?")        payload = "modified_value"        if "&" in parameters:            modif = ""            for params in parameters.split("&"):                name, value = params.split("=")                modif += name + "=" + payload + "&"            print(base_url + "?" + modif.strip("&"))        else:            print(url.split("=")[0] + "=" + payload)findingParams("testme.com/test.php")# testme.com/test.phpfindingParams("testme.com/test.php?name=123")# testme.com/test.php?name=modified_valuefindingParams("testme.com/test.php?name=12345&test=12345")# testme.com/test.php?name=modified_value&test=modified_valuefindingParams("testme.com/test.php?name=12345&test=12345&foo=12345")# testme.com/test.php?name=modified_value&test=modified_value&foo=modified_value
随时随地看视频慕课网APP

相关分类

Python
我要回答