如何改变URL参数的值?不使用正则表达式。
我尝试了以下方法,但代码有些冗长:
此外,我尝试了urlsplit:
我尝试了以下方法,但代码有些冗长:
from urllib.parse import parse_qs, urlencode, urlsplit
url = 'http://example.com/?page=1&text=test#section'
param, newvalue = 'page', '2'
url, sharp, frag = url.partition('#')
base, q, query = url.partition('?')
query_dict = parse_qs(query)
query_dict[param][0] = newvalue
query_new = urlencode(query_dict, doseq=True)
url_new = f'{base}{q}{query_new}{sharp}{frag}'
此外,我尝试了urlsplit:
parsed = urlsplit(url)
query_dict = parse_qs(parsed.query)
query_dict[param][0] = newvalue
query_new = urlencode(query_dict, doseq=True)
parsed.query = query_new
url_new = urlencode(parsed)
但是在urlparsed.query = query_new
的时候出现了错误AttributeError: can't set attribute
。