#python
#python
Вопрос:
Мне нужно добавить four к параметру q и разобрать строку запроса после внесения изменений. Проблема, с которой я сталкиваюсь, в том, что parse_qsl выдает кортежи в списке, поэтому я не могу изменить кортеж. Я не могу использовать parse_qs, потому что у меня есть несколько параметров с одинаковым именем. Как мне изменить параметр q и разобрать запрос в этом сценарии?
from urllib import parse
url = 'https://www.test.com/search?q=one two threeamp;array[]=appleamp;array[]=oranges'
parts = parse.urlparse(url)
querys = parse.parse_qsl(parts.query)
# >>> querys
# [('q', 'one two three'), ('array[]', 'apple'), ('array[]', 'oranges')]
Ответ №1:
Я не уверен, что правильно понял ваш вопрос, это то, чего вы хотите?
from urllib import parse
url = 'https://www.test.com/search?q=one two threeamp;array[]=appleamp;array[]=oranges'
parts = parse.urlparse(url)
querys = [list(q) for q in parse.parse_qsl(parts.query)]
for q in querys:
if q[0] == 'q':
q[1] = q[1] ' four'
print([tuple(q) for q in querys])
#[('q', 'one two three four'), ('array[]', 'apple'), ('array[]', 'oranges')]