Есть ли альтернатива parse_qs, которая обрабатывает точки с запятой?

TL; DR

Какие библиотеки / вызовы доступны для обработки строк запроса, содержащих точки с запятой, иначе, чем parse_qs?

>>> urlparse.parse_qs("tagged=python;ruby")
>>> {'tagged': ['python']}
Full BackgroundI '

я работаю с StackExchange API для поиска помеченных вопросов.

Поиск выглядит так, с тегами, разделенными точкой с запятой:

/2.1/search?order=desc&sort=activity&tagged=python;ruby&site=stackoverflow

Взаимодействие с API - это нормально. Проблема возникает, когда я хочу проверить вызовы, особенно при использованииhttpretty издеваться над HTTP.

Под капотом,httpretty используетurlparse.parse_qs из стандартных библиотек python для анализа строки запроса.

>>> urlparse.parse_qs("tagged=python;ruby")
{'tagged': ['python']}

Ясно, что это нене работает хорошо. Тот'Вот маленький пример, здесьФрагмент httpretty (вне контекста тестирования).

import requests
import httpretty

httpretty.enable()

httpretty.register_uri(httpretty.GET, "https://api.stackexchange.com/2.1/search", body='{"items":[]}')
resp = requests.get("https://api.stackexchange.com/2.1/search", params={"tagged":"python;ruby"})
httpretty_request = httpretty.last_request()
print(httpretty_request.querystring)

httpretty.disable()
httpretty.reset()

Я хочу использовать механизм httpretty, но мне нужно обойтиparse_qs, Я пока могу исправить httpretty, но хотел бы посмотреть, что еще можно сделать.

Ответы на вопрос(1)

Ваш ответ на вопрос