python - Python requests 选项将参数转换为“&”
问题描述
我正在尝试在 requests.get() 上设置参数,该 url 将 & 设置为 & 并且该网站似乎拒绝了该请求。
这是我的示例代码:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)
print(r.url)
https://httpbin.org/get?key1=value1&key2=value2
期待:
https://httpbin.org/get?key1=value1&key2=value2
解决方案
我的请求库的设置和版本并没有按照您所说的设置正在执行的操作。当我运行您的代码时,我得到的输出是:
https://httpbin.org/get?key1=value1&key2=value2
特别有趣的是,这个示例代码直接来自库自己的文档:
https://requests.readthedocs.io/en/master/user/quickstart/#passing-parameters-in-urls
就在那里,他们展示了你应该从这段代码中得到什么:
>>> print(r.url)
https://httpbin.org/get?key2=value2&key1=value1
有点奇怪的是,在他们的版本中,两个参数的顺序是颠倒的,但是由于 map 意味着它的内容没有顺序,我认为没关系。否则,这与我得到的相同...没有编码的&符号。
那么为什么你得到一个带有 & 编码的结果,我不能说,但似乎不知何故,你的配置不同于通常的结果,因为你得到的结果不是通常的结果。
推荐阅读
- maven - 找不到火花“三角洲”源
- flutter - 导航抽屉未在颤动中从 APPBar 小部件打开
- html - 如何将字段集设置为 flex 以使图例位于内容的左侧?
- flutter - 在 android studio 中运行颤振项目时出现“意外的内核 SDK 版本”错误
- c - 有没有一种方便的方法可以查看在给定时间分配了多少内存?
- r - 无法在 Rstudio 中安装软件包 wbstats、plotly、tidyverse
- angular - HttpResponse“TypeError:无法读取未定义的属性‘消息’”
- security - 我正在为我的 jsf 项目使用容器管理的安全性。我应该使用过滤器类进行授权吗?
- docker - 使用不同的配置文件运行多个容器
- javascript - 从查询参数对象中获取对象数组