문제

How would you go about sending a request with multiples values with the same key?

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

Edit:

Hmm, very odd. I tried echoing the post data using a simple Flask application and I'm getting:

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

Is this just a shortcoming of httpbin.org?

도움이 되었습니까?

해결책

It turns out that requests was sending the POST data without a problem. It was an issue on the http://httpbin.org end that was causing form data to be flattened, and multiple values with the same key to be ignored.

다른 팁

Try the Werkzeug MultiDict. It's the same structure used for this purpose in Flask applications.

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)

Result:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top