URL の分解
次のコードを実行したときの出力として、正しいものを1つ選べ。
from urllib.parse import urlparse, parse_qs
u = urlparse("https://ex.com:8080/p/q?x=1#f")
print(u.netloc, u.path, u.query, parse_qs("a=1&a=2&b=3"))
- A
ex.com:8080 /p/q x=1 {'a': ['1', '2'], 'b': ['3']} - B
ex.com /p/q x=1 {'a': '2', 'b': '3'} - C
https://ex.com:8080 /p/q x=1 {'a': ['1', '2'], 'b': ['3']} - D
ex.com:8080 /p/q?x=1 x=1 {'a': ['1', '2'], 'b': ['3']}
正解と解説を見る
正解:A
urlparse は URL を scheme・netloc・path・query・fragment などに分解する。parse_qs はクエリ文字列を、値のリストの辞書にする。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `from urllib.parse import urlparse, parse_qs` | — |
| 2 | `u = urlparse("https://ex.com:8080/p/q?x=1#f")` | u = ParseResult(scheme='https', netloc='ex.… |
| 3 | `print(u.netloc, u.path, u.query, parse_qs("a=…` | u = ParseResult(scheme='https', netloc='ex.… |
| 結果 | 実際の出力 | ex.com:8080 /p/q x=1 {'a': ['1', '2'], 'b': ['3']} |
- A
正しい。
netlocはホストとポート、parse_qsは値をリストにした辞書を返す。 - B
誤り。
netlocにはポートも含まれ、parse_qsは値をリストにする。 - C
誤り。
netlocにスキームは含まれない。 - D
誤り。
pathにクエリは含まれない。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。