Python中使用请求的查询字符串数组参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python中使用请求的查询字符串数组参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1516字,纯文字阅读大概需要3分钟。
内容图文
![Python中使用请求的查询字符串数组参数](/upload/InfoBanner/zyjiaocheng/698/ff5489d332ca4bd082da925df7cd826e.jpg)
我一直试图弄清楚如何使用python-requests发送url看起来像的请求:
http://example.com/api/add.json?name='hello'&data[]='hello'&data[]='world'
通常我可以构建一个字典并执行:
data = {'name': 'hello', 'data': 'world'}
response = requests.get('http://example.com/api/add.json', params=data)
这适用于我所做的大多数事情.但是,我从上面打了url结构,我不知道如何在没有手动构建字符串的情况下在python中执行此操作.我可以做到,但不愿意.
在我丢失的请求库中有什么东西或者我不知道的一些python功能吗?
你甚至称那种类型的参数,所以我可以更好地谷歌吗?
解决方法:
你所做的只是正确的.结果url与你期望的相同.
>>> payload = {'name': 'hello', 'data': 'hello'}
>>> r = requests.get("http://example.com/api/params", params=payload)
你可以看到结果网址:
>>> print(r.url)
http://example.com/api/params?name=hello&data=hello
根据url format:
特别是,对查询字符串进行编码使用以下规则:
>字母(A-Z和a-z),数字(0-9)和字符., – ,?和_保持原样
> SPACE编码为或
>所有其他字符编码为%HH十六进制表示,其中任何非ASCII字符首先编码为UTF-8(或其他指定编码)
因此array []将不会如预期的那样,并将根据规则自动替换:
如果你建立一个像这样的网址:
`Build URL: http://example.com/api/add.json?name='hello'&data[]='hello'&data[]='world'`
OutPut将是:
>>> payload = {'name': 'hello', "data[]": 'hello','data[]':'world'}
>>> r = requests.get("http://example.com/api/params", params=payload)
>>> r.url
u'http://example.com/api/params?data%5B%5D=world&name=hello'
这是因为复制将被url中键的最后一个值替换,data []将被data []替换.
如果data []不是问题(如果服务器能够正确解析它),那么你可以继续它.
内容总结
以上是互联网集市为您收集整理的Python中使用请求的查询字符串数组参数全部内容,希望文章能够帮你解决Python中使用请求的查询字符串数组参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。