Python url 加入参数
Python url joining with parameters
假设我有一个 URL 由主机组成,(例如 whosebug.com)主机中的路径(例如 questions/ask
),最后是一些 url 参数( param1=5,param2=st...
)
所以最后的 url 应该是这样的
http://HOST/PATH?param1=x¶m2=y¶m3=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¶m2=st', '']
url = urlunsplit(urlData)
print(url)
# https://whosebug.com/questions/ask?param1=5¶m2=st
假设我有一个 URL 由主机组成,(例如 whosebug.com)主机中的路径(例如 questions/ask
),最后是一些 url 参数( param1=5,param2=st...
)
所以最后的 url 应该是这样的
http://HOST/PATH?param1=x¶m2=y¶m3=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¶m2=st', '']
url = urlunsplit(urlData)
print(url)
# https://whosebug.com/questions/ask?param1=5¶m2=st