2014-04-30 3 views

Antwort

28

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']} 
+3

Wie wäre es mit 'requests.post (url, data = {'interests': ['fußball', 'basketball']}' '? –

+0

@GuilhermeGarnier: yup, das wird auch funktionieren. –

3

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) 
Verwandte Themen