Google Directions API aracılığıyla Google Haritalar'ı dinamik olarak sorgulamak istiyorum. Örnek olarak, bu istek Joplin, MO ve Oklahoma City, OK'deki iki ara nokta üzerinden Chicago, IL'den Los Angeles, CA'ya giden rotayı hesaplıyor:
JSON biçiminde] bir sonuç döndürür1.
Bunu Python'da nasıl yapabilirim? Böyle bir istek göndermek, sonucu almak ve ayrıştırmak istiyorum.
Harika requests kütüphanesini kullanmanızı tavsiye ederim:
import requests
url = 'http://maps.googleapis.com/maps/api/directions/json'
params = dict(
origin='Chicago,IL',
destination='Los+Angeles,CA',
waypoints='Joplin,MO|Oklahoma+City,OK',
sensor='false'
)
resp = requests.get(url=url, params=params)
data = resp.json() # Check the JSON Response Content documentation below
JSON Yanıt İçeriği: http://docs.python-requests.org/en/latest/user/quickstart/#json-response-content
İstek kütüphanesini kullanın, sonuçları güzel bir şekilde yazdırın, böylece çıkarmak istediğiniz anahtarları/değerleri daha iyi bulabilirsiniz ve ardından verileri ayrıştırmak için iç içe for döngüleri kullanın. Örnekte adım adım sürüş talimatlarını çıkarıyorum.
import json, requests, pprint
url = 'http://maps.googleapis.com/maps/api/directions/json?'
params = dict(
origin='Chicago,IL',
destination='Los+Angeles,CA',
waypoints='Joplin,MO|Oklahoma+City,OK',
sensor='false'
)
data = requests.get(url=url, params=params)
binary = data.content
output = json.loads(binary)
# test to see if the request was valid
#print output['status']
# output all of the results
#pprint.pprint(output)
# step-by-step directions
for route in output['routes']:
for leg in route['legs']:
for step in leg['steps']:
print step['html_instructions']