Envío de solicitud POST con múltiples valores para la misma clave con biblioteca de solicitudes
-
28-10-2019 - |
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?
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