Saya ingin secara dinamis query Google Maps melalui Google Arah API. Sebagai contoh, permintaan ini menghitung rute dari Chicago ke Los Angeles, CA melalui dua titik arah di Joplin, MISSOURI dan Oklahoma City, OK:
Ia mengembalikan hasil dalam format JSON]1.
Bagaimana saya bisa melakukan ini di Python? Saya ingin mengirim permintaan tersebut, menerima hasilnya dan mengurai.
Saya sarankan menggunakan yang mengagumkan permintaan perpustakaan:
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
Respon JSON Konten: http://docs.python-requests.org/en/latest/user/quickstart/#json-response-content
The permintaan
modul Python mengurus kedua mengambil data JSON dan decoding itu, karena builtin JSON decoder. Berikut adalah contoh yang diambil dari modul's dokumentasi:
>>> import requests
>>> r = requests.get('https://github.com/timeline.json')
>>> r.json()
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...
Jadi tidak ada keharusan untuk menggunakan beberapa modul terpisah untuk decoding JSON.
permintaan
memiliki built-in .json()
metode
import requests
requests.get(url).json()
Gunakan permintaan perpustakaan, cukup mencetak hasil sehingga anda dapat lebih baik mencari kunci/nilai yang ingin anda ekstrak, dan kemudian menggunakan nested loop untuk mengurai data. Dalam contoh saya mengambil langkah demi langkah petunjuk arah mengemudi.
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']
Coba ini:
import requests
import json
# Goole Maps API.
link = 'http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO|Oklahoma+City,OK&sensor=false'
# Request data from link as 'str'
data = requests.get(link).text
# convert 'str' to Json
data = json.loads(data)
# Now you can access Json
for i in data['routes'][0]['legs'][0]['steps']:
lattitude = i['start_location']['lat']
longitude = i['start_location']['lng']
print('{}, {}'.format(lattitude, longitude))