Python-将查询参数附加到网址以进行API调用的最佳做法是什么

时间:2018-09-21 17:34:24

标签: python urlparse

我知道乍一看听起来很奇怪。让我解释一下。

我的域名保持一致,例如https://some.api.endpoint/some/path

我有一个需要调用的不同查询的列表。一种实现方法是简单地连接字符串,但随后我不得不处理编码,这是我想避免的事情。

所以我决定继续使用urlparse-> urlunparse。我不确定这是否是个好习惯,但这可以奏效。

url = 'https://some.api.endpoint/some/path'
parsed = urlparse(url)
parsed=parsed._replace(query='search=some_name')
new_url = urlunparse(parsed)
response = requests.get(new_url)

我的问题:

  1. 这甚至是个好习惯吗?
  2. 如果没有urlunparse部分就可以这样做吗?
  3. 有什么更好的方法?

1 个答案:

答案 0 :(得分:3)

requests文档中,您可以将字典传递给params的{​​{1}}关键字参数。 http://docs.python-requests.org/en/master/user/quickstart/

requests.get

这将为您处理url编码和所有内容。

以上代码段的结果:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('http://httpbin.org/get', params=payload)