Python での Urlencode の使用
URL は、Uniform ResourceLocator の略です。URL は、ブラウザが Web ページのロードを要求する URL を介した Web 上のリソースのアドレスです。
URL エンコードは、制限された US-ASCII
を使用して文字を特別な形式に変換するプロセスであり、すべてのブラウザと Web サーバーで広く受け入れられています。
URL に ASCII セットで定義された文字以外の文字が含まれている場合、これらの文字は有効な ASCII 形式に変換されます。URL にパーセント記号が頻繁に表示されるため、パーセントエンコードとも呼ばれます。
Web API を呼び出したり、HTTP フォームデータを送信したりするときは常に、エンコードされた URL を使用してクエリ文字列をエンコードします。Python では、urlib.parse
モジュールを使用してクエリ文字列を URL エンコードできます。このモジュールには、URL でクエリ文字列
をエンコードするための関数 urlencode()
がさらに含まれています。クエリ文字列
は、単にキーと値のペアの文字列です。
Python で urlencode()
を使用して辞書を URL エンコードする
urlencode()
関数を使用して文字列を URL エンコードする場合、引数として文字列を受け入れないため、直接行うことはできません。辞書の形で引数を渡すことができます。ディクショナリは、データをキーと値のペアで格納する Python のデータ型です。
たとえば、次のようなクエリ文字列があります。
queryString = "name=" + "Jhon" + "&" + "age=" + "18"
まず、次のような辞書形式で記述する必要があります。
queryString = {"name": "Jhon", "age": "18"}
次のコードでは、urlib
ライブラリをインポートする必要があり、クエリ文字列を urlib
ライブラリの parse
モジュールの urlencode()
関数に渡します。出力では、必要なエンコードされた URL を取得します。
出力では、エンコードされた URL は、スペース
が+
記号に置き換えられ、:
記号が&
記号に置き換えられた形式になります。これは、クエリ文字列のエンコードされた URL の形式であるためです。
サンプルコード:
# python 3.x
import urllib
queryString = {"name": "Jhon", "age": "18"}
urllib.parse.urlencode(queryString)
出力:
#python 3.x
'age=18&name=Jhon'
Python で urlencode()
を使用して複数値辞書を URL エンコードする
ここで、辞書の形式のクエリ文字列に、値が blue
、pink
、green
の colors という名前の属性のような複数値のデータが含まれているとしましょう。これは、複数値の属性です。Python でそのような辞書を URL エンコードすることもできます。
urlencode()
関数は、オプションの引数 doseq
を取ります。その値を True
に設定すると、出力で特殊文字を避けることができます。
サンプルコード:
import urllib
queryString = {"jeans": "Bell Bottom", "colors": ["blue", "pink", "green"]}
urllib.parse.urlencode(queryString, doseq=True)
出力:
'jeans=Bell+Bottom&colors=blue&colors=pink&colors=green'
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn