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