Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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"
  ]
},
...
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top