requests.post(url, data={'interests':'football','interests':'basketball'})
ma, non funziona, come inviare e football
basketball
nel interests
campo?come pubblicare più valori con la stessa chiave nelle richieste python?
requests.post(url, data={'interests':'football','interests':'basketball'})
ma, non funziona, come inviare e football
basketball
nel interests
campo?come pubblicare più valori con la stessa chiave nelle richieste python?
Le chiavi del dizionario devono essere essere uniche, non è possibile ripeterle. Devi usare una sequenza di tuple chiave-valore, invece, e passa questo a data
:
requests.post(url, data=[('interests', 'football'), ('interests', 'basketball')])
In alternativa, rendere i valori del dizionario data
liste; ogni valore nella lista viene utilizzato come voce parametro a parte:
requests.post(url, data={'interests': ['football', 'basketball']})
Demo POST per 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']}
E 'possibile utilizzare urllib3._collections.HTTPHeaderDict
come un dizionario che ha più valori in una chiave:
from urllib3._collections import HTTPHeaderDict
data = HTTPHeaderDict()
data.add('interests', 'football')
data.add('interests', 'basketball')
requests.post(url, data=data)
Come su 'requests.post (url, data = {'interessi': ['football', 'basketball']})'? –
@GuilhermeGarnier: sì, funzionerà anche tu. –