1. ホーム
  2. python

[解決済み] URL クエリパラメータをディクショナリにする python

2022-05-25 13:42:26

質問

URLを(pythonライブラリを使って)パースし、URLのクエリパラメータ部分のキーと値をpython辞書として返す方法はありますか?

例えば

url = "http://www.example.org/default.html?ct=32&op=92&item=98"

期待されるリターン

{'ct':32, 'op':92, 'item':98}

どのように解決するのですか?

この場合 urllib.parse ライブラリ :

>>> from urllib import parse
>>> url = "http://www.example.org/default.html?ct=32&op=92&item=98"
>>> parse.urlsplit(url)
SplitResult(scheme='http', netloc='www.example.org', path='/default.html', query='ct=32&op=92&item=98', fragment='')
>>> parse.parse_qs(parse.urlsplit(url).query)
{'item': ['98'], 'op': ['92'], 'ct': ['32']}
>>> dict(parse.parse_qsl(parse.urlsplit(url).query))
{'item': '98', 'op': '92', 'ct': '32'}

urllib.parse.parse_qs()urllib.parse.parse_qsl() メソッドはクエリ文字列を解析し、キーが複数回出現する可能性があり、その順序が重要であることを考慮します。

まだ Python 2 を使っているのであれば urllib.parse と呼ばれていました。 urlparse .