requests.post(url, data={'interests':'football','interests':'basketball'})
aber, funktioniert nicht, wie man football
und basketball
in interests
Feld einträgt?Wie posten Sie mehrere Werte mit demselben Schlüssel in Python-Anfragen?
requests.post(url, data={'interests':'football','interests':'basketball'})
aber, funktioniert nicht, wie man football
und basketball
in interests
Feld einträgt?Wie posten Sie mehrere Werte mit demselben Schlüssel in Python-Anfragen?
Wörterbuchschlüssel müssen einmalig sein, Sie können sie nicht wiederholen. Sie würden eine Reihe von Schlüssel-Wert-Tupel verwenden stattdessen, und übergeben diese an data
:
requests.post(url, data=[('interests', 'football'), ('interests', 'basketball')])
Alternativ machen die Werte des data
Wörterbuch Listen; jeder Wert in der Liste wird als separate Parametereingabe verwendet:
requests.post(url, data={'interests': ['football', 'basketball']})
Demo POST http://httpbin.org:
>>> import requests
>>> url = 'http://httpbin.org/post'
>>> r = requests.post(url, data=[('interests', 'football'), ('interests', 'basketball')])
>>> r.request.body
'interests=football&interests=basketball'
>>> r.json()['form']
{u'interests': [u'football', u'basketball']}
>>> r = requests.post(url, data={'interests': ['football', 'basketball']})
>>> r.request.body
'interests=football&interests=basketball'
>>> r.json()['form']
{u'interests': [u'football', u'basketball']}
Es ist möglich, urllib3._collections.HTTPHeaderDict
als Wörterbuch zu verwenden, die mehrere Werte unter einem Schlüssel hat:
from urllib3._collections import HTTPHeaderDict
data = HTTPHeaderDict()
data.add('interests', 'football')
data.add('interests', 'basketball')
requests.post(url, data=data)
Wie wäre es mit 'requests.post (url, data = {'interests': ['fußball', 'basketball']}' '? –
@GuilhermeGarnier: yup, das wird auch funktionieren. –