Heim > Backend-Entwicklung > Python-Tutorial > Wie kodiere ich URL-Parameter in Python richtig?

Wie kodiere ich URL-Parameter in Python richtig?

DDD
Freigeben: 2024-10-27 07:00:03
Original
1081 Leute haben es durchsucht

How to Properly Encode URL Parameters in Python?

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:

  • Unvollständige Codierung: urllib.quote() kann das Zeichen „/“ nicht codieren, wodurch die OAuth-Normalisierung unterbrochen werden kann.
  • Unicode-Unterstützungsprobleme:Es werden Ausnahmen ausgelöst, wenn versucht wird, Unicode-Zeichenfolgen zu verarbeiten.

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage