URL-Parameter dekodieren

Ich spreche mit einem Server, der mir HTTP-Zeichenfolgen wie diese gesendet hat:

/path/to/my/handler/?action-query&id=112&type=vca&info=ch=0&type=event&ev16[sts=begin (...)

Der GET-Parameter "info" enthielt also die Zeichen "=" und "&". Es war ziemlich unorthodox, aber wir haben trotzdem einen Parser dafür geschrieben. Kürzlich haben sie sich jedoch entschlossen, einen Teil davon zu codieren, sodass die Zeichenfolge jetzt so aussieht.

/path/to/my/handler/?action=query&id=112&type=vca&info=ch%3D0%26type%3Devent%26ev46[sts%3Dbegin (...)

Dies zerstört unseren Parser, der einen String wie den ersten erwartet.

Kann ich den String irgendwie "entschlüsseln", damit ich den alten Code verwenden kann (damit er nicht kaputt geht, wenn wir den Parser neu schreiben)?

Wie in der Antwort unten angegeben, können wir urllib.unquote () verwenden, um die Zeichenfolge zu bereinigen. Wir verlassen uns jedoch auf request.GET, das basierend auf der ersten Zeichenfolge eingerichtet wird. Ist es möglich, das GET-Objekt basierend auf der neuen konvertierten Zeichenfolge zu rekonstruieren oder es irgendwie zu einer Neubewertung zu zwingen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage