Python url 加入参数

Python url joining with parameters

假设我有一个 URL 由主机组成,(例如 whosebug.com)主机中的路径(例如 questions/ask),最后是一些 url 参数( param1=5,param2=st...)

所以最后的 url 应该是这样的 http://HOST/PATH?param1=x&param2=y&param3=zw

是否有内置函数可以根据主机、路径和参数字典构造 url?我无法找到任何不涉及手动字符串连接的方法来做到这一点,我觉得如果可以避免的话,这可能不应该手动完成。 (也许我错了,因为与文件路径不同,urls 是平台独立的并且非常一致)

我尝试使用 urllib.parse 和其他几种方法,但没有找到一种支持这种通用 url 而无需手动连接的方法。

我认为你正在寻找 urlunsplit(). You need to build a list/tuple matching the result from urlsplit()(5 个元素),那么 urlunsplit() 会做你想要的。

from urllib.parse import urlunsplit

urlData = ['https', 'whosebug.com', 'questions/ask', 'param1=5&param2=st', '']
url = urlunsplit(urlData)

print(url)
# https://whosebug.com/questions/ask?param1=5&param2=st