Python >> Tutoriel Python >  >> Python Tag >> JSON

Envoi d'objets JSON longs (géométrie polygonale, lignes de tableau) dans une requête POST au service de géotraitement ?

C'est assez facile avec urllib2 . Supposons que vous ayez une URL gigantesque comme celle-ci :

http://myserver/path/to/a/thing?json1={"data":[1,2,3,4,5]}&json2={"data":[1,2,3,4,5]}&json3={"data":[1,2,3,4,5]}

Tout ce que vous avez à faire est de prendre la requête (tout après le ? ) et bloquez-le dans l'argument de données à urlopen .

import urllib2
import urlparse

# GET
return_data = urllib2.urlopen(url).read()

# POST
url_parts = urlparse.urlsplit(url)
base_url = urlparse.urlunsplit(url_parts[:3] + (None, None))
return_data = urllib2.urlopen(base_url, url_parts.query).read()

Ensuite, il y a Requests , qui n'est pas dans la bibliothèque standard mais qui est vraiment très agréable et intuitif à utiliser.