Ich möchte Google Maps dynamisch über die Google Directions-API abfragen. Diese Anfrage berechnet beispielsweise die Route von Chicago, IL nach Los Angeles, CA über zwei Wegpunkte in Joplin, MO und Oklahoma City, OK:
Es wird ein Ergebnis im JSON-Format zurückgegeben .
Wie kann ich das in Python machen? Ich möchte eine solche Anfrage senden, das Ergebnis erhalten und es analysieren.
json=params
stattdessen tunparams=params
oder ich bekomme einen 500 Fehler.Das
requests
Python-Modul übernimmt aufgrund seines integrierten JSON-Decoders sowohl das Abrufen als auch das Decodieren von JSON-Daten. Hier ist ein Beispiel aus der Dokumentation des Moduls :Es ist also nicht sinnvoll, ein separates Modul zum Decodieren von JSON zu verwenden.
quelle
json.load()
oderjson.loads()
stattdessen, wie in 0.x,json
eher eine Eigenschaft als eine Funktion.python-requests
(oderpython3-requests
) Paket ab. Sie müssen sie also an einem anderen Ort installieren, als um/usr/local
zu vermeiden, dass diese Pakete beschädigt werden. Wenn Portabilität / Kompatibilität jedoch trivial ist, lohnt es sich meiner Meinung nach.r.json()
(aus meiner Antwort) haben Sie die tatsächliche Antwort, JSON-decodiert. Sie können wie ein normaleslist
/ darauf zugreifendict
.print r.json()
um zu sehen, wie es aussieht. Oder lesen Sie die API-Dokumente des Dienstes, für den Sie die Anforderung gestellt haben.requests
hat eingebaute.json()
Methodequelle
quelle
urllib.request
in Python 3.Verwenden Sie die Anforderungsbibliothek, drucken Sie die Ergebnisse hübsch aus, damit Sie die zu extrahierenden Schlüssel / Werte besser finden können, und verwenden Sie dann verschachtelte for-Schleifen, um die Daten zu analysieren. Im Beispiel extrahiere ich Schritt für Schritt Wegbeschreibungen.
quelle
import pprint
dann ->pprint.pprint(step['html_instructions'])
Versuche dies:
quelle
Auch für hübschen Json auf der Konsole:
Dumps mit Einzug können verwendet werden. (Bitte json importieren )
quelle