如何防止python请求对我的URL进行百分比编码?
我正在尝试使用python中的request.get()获取以下格式的URL:
http://api.example.com/export/?format=json&key=site:dummy+type:example+group:wheel
#!/usr/local/bin/python
import requests
print(requests.__versiom__)
url = 'http://api.example.com/export/'
payload = {'format': 'json', 'key': 'site:dummy+type:example+group:wheel'}
r = requests.get(url, params=payload)
print(r.url)
但是,URL得到了百分比编码,但没有得到预期的响应。
2.2.1
http://api.example.com/export/?key=site%3Adummy%2Btype%3Aexample%2Bgroup%3Awheel&format=json
如果我直接传递URL,则可以使用:
url = http://api.example.com/export/?format=json&key=site:dummy+type:example+group:wheel
r = requests.get(url)
是否可以通过某种方式以原始格式传递参数-无需百分比编码?
谢谢!
-
这不是一个好的解决方案,但您可以使用
string
:r = requests.get(url, params='format=json&key=site:dummy+type:example+group:wheel')
顺便说一句:
payload = {'format': 'json', 'key': 'site:dummy+type:example+group:wheel'} payload_str = "&".join("%s=%s" % (k,v) for k,v in payload.items()) # 'format=json&key=site:dummy+type:example+group:wheel' r = requests.get(url, params=payload_str)