python - 在 Python 中将参数添加到给定的 URL

标签 python url

假设给了我一个 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.

有没有标准的方法来做到这一点?

最佳答案

urlliburlparse 模块有一些怪癖。这是一个工作示例:

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))

ParseResulturlparse()的结果,is read-only我们需要先将其转换为 list,然后才能尝试修改其数据。

关于python - 在 Python 中将参数添加到给定的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506379/

相关文章:

java - 我应该如何为具有 LDAP 和两个 LDAP 服务器的 Oracle 编写 JDBC url?

python -m pip install -U pip Errno 11004

python - 除了列表中的第一项 - python

Python:SocketServer 意外关闭 TCP 连接

html - WordPress URL 中的  (OBJ) 符号?

jsf - 为什么 JSF 中页面发生变化,但 URL 却没有变化?

python - Django 在之前已设置外键的同一记录中填充值

python - 在 Python 中列出具有指定深度的目录

javascript - 有条件地跳过提交的表单字段,减少 URL 困惑

java - 如何编写更改 url 的脚本