使用请求库发送具有相同键的倍数值的POST请求

时间:2011-12-06 01:34:13

标签: python http-post python-requests

您如何使用相同的密钥发送具有倍数值的请求?

r = requests.post('http://www.httpbin.org/post', data={1: [2, 3]})
print r.content
{
  ...
  "form": {
    "1": "3"
  }, 
  ...
}

修改

嗯,很奇怪。我尝试使用简单的Flask应用程序回显帖子数据,我得到了:

[('1', u'2'), ('1', u'3')]

这只是httpbin.org的缺点吗?

2 个答案:

答案 0 :(得分:4)

事实证明requests发送POST数据没有问题。 http://httpbin.org端的问题导致表单数据被展平,并且可以忽略具有相同键的多个值。

答案 1 :(得分:3)

尝试Werkzeug MultiDict。它与Flask应用程序中用于此目的的结构相同。

import requests
from werkzeug.datastructures import MultiDict

data = MultiDict([('1', '2'), ('1', '3')])
r = requests.post('http://www.httpbin.org/post', data=data)
print(r.content)

结果:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...