Senden einer POST-Anforderung mit mehreren Werten für denselben Schlüssel mit der Anforderungsbibliothek

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

Frage

Wie würden Sie eine Anfrage mit mehreren Werten mit demselben Schlüssel senden?

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

Bearbeiten:

Hmm, sehr seltsam.Ich habe versucht, die Post-Daten mit einer einfachen Flask-Anwendung wiederzugeben, und erhalte Folgendes:

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

Ist dies nur ein Mangel von httpbin.org?

War es hilfreich?

Lösung

Es stellt sich heraus, dass requests die POST-Daten problemlos gesendet hat.Es war ein Problem am http://httpbin.org -Ende, das dazu führte, dass Formulardaten abgeflacht wurden und mehrere Werte mitder gleiche Schlüssel, der ignoriert werden muss.

Andere Tipps

Probieren Sie den Werkzeug MultiDict aus.Es ist dieselbe Struktur, die für diesen Zweck in Kolbenanwendungen verwendet wird.

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)

Ergebnis:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top