假设给我一个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/search?lang=en&tag=python
有什么标准的方法可以做到这一点吗
urllib和urlparse模块有几个怪癖。下面是一个工作示例:
尝试:
导入URL解析
从urllib导入urlencode
除了:#对于Python 3
将urllib.parse导入为urlparse
从urllib.parse导入urlencode
url=”http://stackoverflow.com/search?q=question"
params={'lang':'en','tag':'python'}
url\u parts=list(urlparse.urlparse(url))
query=dict(urlparse.parse_qsl(url_parts[4]))
query.update(参数)
url\u parts[4]=urlencode(查询)
打印(urlparse.urlumprase(url\u部分))
ParseResult,urlparse()的结果是只读的,我们需要将其转换为列表,然后才能尝试修改其数据