Invio di richieste POST con valori multipli per la stessa chiave con la libreria delle richieste

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

Domanda

Come faresti per inviare una richiesta con valori multipli con la stessa chiave?

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

<”Modifica:

Hmm, molto strano.Ho provato a ripetere i dati del post utilizzando una semplice applicazione Flask e ottengo:

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

È solo un difetto di httpbin.org?

È stato utile?

Soluzione

Si scopre che requests stava inviando i dati POST senza problemi.Era un problema all'estremità http://httpbin.org che causava l'appiattimento dei dati del modulo e più valori conla stessa chiave da ignorare.

Altri suggerimenti

Prova il MultiDict di Werkzeug.È la stessa struttura utilizzata per questo scopo nelle applicazioni 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)

Risultato:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top