初めに
urlparseの結果には以下のようにparamsという値があります
ParseResult(scheme='scheme', netloc='netloc', path='/path;parameters', params='',
query='query', fragment='fragment')
ドキュメントの説明を見ると最後のパス要素に対するパラメータとありますがイミフです
さらにサンプルを見ても全て空になっており、どういう場合に入るのかわからなかったため調べました
結論
以下のようなURLの場合に入ります
https://hoge/users;id=123
from urllib.parse import urlparse
url = 'https://hoge/users;id=123'
print(urlparse(url))
ParseResult(scheme='https', netloc='hoge', path='/users', params='id=123', query='', fragment='')
これはなんなのか
マトリクスパラメータというものらしいです
こちらに詳しい解説などがありました
クエリパラメータはリクエスト全体に対して適用するのに対して、マトリクスパラメータはパスに対して適用するものという考え方らしいですが、一般的じゃ無いのでマトリクスパラメータはあんま使わない方がいいよってことみたいです
本来は
https://hoge/users;id=123/friends
みたいなパスの途中にマトリクスパラメータを入れるみたいなこともありらしいですが、パスの途中だとurlparseは解釈できないみたいです(だから最後のパス要素に対するパラメータってことなのかも)
あと、サーバーの解釈違いによる脆弱性みたいなのもあるらしいです
最後に
マトリクスパラメータが必要になる場面は滅多に無いので基本知らなくても影響無いとは思いますが、urlparseを使う場合には頭の片隅に置いておくといいかもしれません