Gibt es eine Alternative zu parse_qs, die Semikolons behandelt?

TL; DR

Welche Bibliotheken / Aufrufe stehen zur Verfügung, um Abfragezeichenfolgen, die Semikolons enthalten, anders als parse_qs zu behandeln?

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

Ich arbeite mit der StackExchange-API, um nach markierten Fragen zu suchen.

Suche ist so angeordnet, mit durch Semikolon getrennten Tags:

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

Die Interaktion mit der API ist in Ordnung. Das Problem tritt auf, wenn ich die Anrufe testen möchte, insbesondere wenn ich sie verwendehttpretty um HTTP zu verspotten.

Unter der Haube,httpretty benutzturlparse.parse_qs aus den Python-Standardbibliotheken, um den Querystring zu analysieren.

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

Offensichtlich funktioniert das nicht gut. Das ist das kleine Beispiel, hier ist ein Ausschnitt von httpretty (außerhalb des Testkontexts).

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()

Ich möchte den Computer von httpretty verwenden, benötige jedoch eine Problemumgehung fürparse_qs. Ich kann httpretty für den Moment mit Affen patchen, würde aber gerne sehen, was noch getan werden kann.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage