Senden einer POST-Anforderung mit mehreren Werten für denselben Schlüssel mit der Anforderungsbibliothek
-
28-10-2019 - |
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?
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