Je souhaite interroger dynamiquement Google Maps via l'API Google Directions. Par exemple, cette demande calcule l'itinéraire de Chicago, IL à Los Angeles, CA via deux waypoints à Joplin, MO et Oklahoma City, OK:
Il renvoie un résultat au format JSON .
Comment puis-je faire cela en Python? Je souhaite envoyer une telle demande, recevoir le résultat et l'analyser.
json=params
au lieu deparams=params
ou j'obtiens une erreur 500.Le
requests
module Python s'occupe à la fois de récupérer les données JSON et de les décoder, grâce à son décodeur JSON intégré. Voici un exemple tiré de la documentation du module :Il n'est donc pas nécessaire d'avoir à utiliser un module distinct pour le décodage JSON.
la source
json.load()
oujson.loads()
plutôt, comme dans 0.x,json
est une propriété plutôt qu'une fonction.python-requests
(oupython3-requests
), vous devrez donc installer ailleurs que/usr/local
pour éviter de casser ces packages. En revanche, lorsque la portabilité / compatibilité est triviale, à mon avis, cela en vaut la peine.r.json()
(à partir de ma réponse) vous avez la réponse réelle, décodée JSON. Vous pouvez y accéder comme un normallist
/dict
;print r.json()
pour voir à quoi ça ressemble. Ou reportez-vous aux documents API du service pour lequel vous avez fait la demande.requests
a une.json()
méthode intégréela source
la source
urllib.request
en Python 3.Utilisez la bibliothèque de requêtes, imprimez les résultats de manière à pouvoir localiser mieux les clés / valeurs que vous souhaitez extraire, puis utilisez les boucles imbriquées pour analyser les données. Dans l'exemple, j'extrait des instructions de conduite étape par étape.
la source
import pprint
then ->pprint.pprint(step['html_instructions'])
Essaye ça:
la source
Aussi pour la jolie Json sur console:
possible d'utiliser des vidages avec retrait. (Veuillez importer json )
la source