Chcę dynamicznie wyszukiwać w Mapach Google za pośrednictwem interfejsu API Google Directions. Na przykład to żądanie oblicza trasę z Chicago, IL do Los Angeles, Kalifornia przez dwa punkty trasy w Joplin, MO i Oklahoma City, OK:
Zwraca wynik w formacie JSON .
Jak mogę to zrobić w Pythonie? Chcę wysłać takie żądanie, otrzymać wynik i przeanalizować go.
json=params
zamiastparams=params
lub pojawia się błąd 500.requests
Moduł Pythona dba zarówno pobierania danych JSON i dekodowania go, ze względu na wbudowany dekoder JSON. Oto przykład zaczerpnięty z dokumentacji modułu :Nie ma więc potrzeby używania osobnego modułu do dekodowania JSON.
źródło
json.load()
lubjson.loads()
zamiast tego, jak w 0.x,json
jest raczej właściwością niż funkcją.python-requests
(lubpython3-requests
), więc będziesz musiał zainstalować gdzieś indziej,/usr/local
aby uniknąć uszkodzenia tych pakietów. Z drugiej strony, gdy przenośność / kompatybilność jest banalna, moim zdaniem warto.r.json()
(z mojej odpowiedzi) masz właściwą odpowiedź, dekodowaną w JSON. Możesz uzyskać do niego dostęp jak normalnylist
/dict
;print r.json()
żeby zobaczyć jak to wygląda. Lub zapoznaj się z dokumentacją API usługi, o którą poprosiłeś.requests
ma wbudowaną.json()
metodęźródło
źródło
urllib.request
w Pythonie 3.Skorzystaj z biblioteki żądań, ładnie wydrukuj wyniki, aby lepiej zlokalizować klucze / wartości, które chcesz wyodrębnić, a następnie użyj zagnieżdżonej pętli do analizy danych. W przykładzie wyodrębniam wskazówki dojazdu krok po kroku.
źródło
import pprint
następnie ->pprint.pprint(step['html_instructions'])
Spróbuj tego:
źródło
Również dla ładnego Jsona na konsoli:
możliwe użycie zrzutów z wcięciem. (Proszę zaimportować json )
źródło