Envío de solicitud POST con múltiples valores para la misma clave con biblioteca de solicitudes

StackOverflow https://stackoverflow.com/questions/8394267

Pregunta

¿Cómo harías para enviar una solicitud con múltiples valores con la misma clave?

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

Editar:

Mmmm, muy extraño.Intenté hacer eco de los datos de la publicación usando una aplicación Flask simple y obtengo:

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

¿Es esto sólo una deficiencia de httpbin.org?

¿Fue útil?

Solución

Resulta que requests estaba enviando los datos POST sin problemas.Se trataba de un problema en el extremo http://httpbin.org que provocaba que los datos del formulario se aplanaran y varios valores conla misma clave para ser ignorada.

Otros consejos

Prueba el Werkzeug MultiDict.Es la misma estructura utilizada para este propósito en las aplicaciones 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)

Resultado:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top