假设给了我一个 URL。
它可能已经有 GET 参数(例如 http://example.com/search?q=question
),也可能没有(例如 http://example.com/
)。
现在我需要向它添加一些参数,例如 {'lang':'en','tag':'python'}
。在第一种情况下,我将使用 http://example.com/search?q=question&lang=en&tag=python
,在第二种情况下 - http://example.com/搜索?lang=en&tag=python
.
有没有标准的方法来做到这一点?
最佳答案
urllib
和 urlparse
模块有一些怪癖。这是一个工作示例:
try:
import urlparse
from urllib import urlencode
except: # For Python 3
import urllib.parse as urlparse
from urllib.parse import urlencode
url = "http://stackoverflow.com/search?q=question"
params = {'lang':'en','tag':'python'}
url_parts = list(urlparse.urlparse(url))
query = dict(urlparse.parse_qsl(url_parts[4]))
query.update(params)
url_parts[4] = urlencode(query)
print(urlparse.urlunparse(url_parts))
ParseResult
,urlparse()
的结果,is read-only我们需要先将其转换为 list
,然后才能尝试修改其数据。
关于python - 在 Python 中将参数添加到给定的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506379/