プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2022/01/07

[Python] URL のエンコード・デコード

event_note2022/01/07 4:11

URL に使用できない文字を使用する場合、URL エンコードを行う必要があります。

例えば REST API の GET メソッドのクエリパラメーターで、日時を ISO8601 形式で渡す必要がある場合、+: が含まれるので、URL エンコード・デコードが必要になります。
エンコード・デコードには、urllib.parse を使います。

エンコード

from datetime import datetime
from urllib import parse

dt = datetime.now()
encoded = parse.quote(dt.isoformat())

print(dt.isoformat()) # エンコード前
print(encoded) # エンコード後

出力結果

2022-01-07T13:06:54.927884
2022-01-07T13%3A06%3A54.927884

デコード

decoded = parse.unquote('2022-01-07T13%3A06%3A54.927884')
print(decoded)

出力結果

2022-01-07T13:06:54.927884

参考 URL