5

您将如何使用相同的键发送具有多个值的请求?

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

编辑:

嗯,很奇怪。我尝试使用一个简单的 Flask 应用程序回显发布数据,我得到:

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

这只是httpbin.org的一个缺点吗?

4

2 回答 2

4

试试 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"
  ]
},
...
于 2011-12-08T18:06:15.470 回答
4

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

于 2011-12-08T18:18:54.060 回答