URL-Parameter in Python kodieren
URLs enthalten oft Parameter, die kodiert werden müssen, um Fehler zu vermeiden und die Kompatibilität aufrechtzuerhalten. In Python wird zu diesem Zweck häufig die Funktion urllib.quote() verwendet. Allerdings gibt es bestimmte Einschränkungen:
Verbesserte Codierung mit urllib.parse.quote()
Die Python 3-Dokumentation schlägt die Verwendung von urllib.parse.quote() vor:
<code class="python">urllib.parse.quote(string, safe='/', encoding=None, errors=None)</code>
Diese Funktion bietet eine bessere Codierung, indem sie die Angabe zusätzlicher Zeichen ohne Anführungszeichen ermöglicht. Standardmäßig enthält der sichere Parameter „/“. Die sichere Übergabe einer leeren Zeichenfolge löst das erste Problem:
<code class="python">>>> import urllib.parse >>> urllib.parse.quote('/test', safe='') '%2Ftest'</code>
Unicode-Handhabung
Das zweite Problem mit der Unicode-Unterstützung wurde in Python 3 behoben. Für Python 2 , können Sie Unicode-Zeichenfolgen als UTF-8 kodieren, um das Problem zu umgehen:
<code class="python">>>> query = urllib.quote(u"Müller".encode('utf8')) >>> print urllib.unquote(query).decode('utf8') Müller</code>
Alternativer Ansatz: urlencode()
Der Einfachheit halber sollten Sie erwägen, urlencode( ), anstatt jeden Parameter manuell prozentual zu kodieren. Es kodiert automatisch Schlüssel-Wert-Paare mit Unterstützung für Unicode und benutzerdefinierte Trennzeichen:
<code class="python">>>> import urllib.parse >>> params = urllib.parse.urlencode({'name': 'John Doe'}) 'name=John+Doe'</code>
Das obige ist der detaillierte Inhalt vonWie kodiere ich URL-Parameter in Python richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!