2016-08-24 4 views
2

Я хочу получить все рестораны в Лондоне, используя python 3.5 и модуль googleplaces с API Google Places. Я читал документацию googleplaces и искал здесь, но я не понимаю. Вот мой код:API Python и Google Places | Хотите получить все рестораны на определенную должность

from googleplaces import GooglePlaces, types, lang 

API_KEY = 'XXXCODEXXX' 

google_places = GooglePlaces(API_KEY) 

query_result = google_places.nearby_search(
    location='London', keyword='Restaurants', 
    radius=1000, types=[types.TYPE_RESTAURANT]) 

if query_result.has_attributions: 
print query_result.html_attributions 


for place in query_result.places: 
    place.get_details() 
    print place.rating 

Код не работает. Что я могу сделать, чтобы получить список со всеми ресторанами в этой области?

+0

Что происходит при запуске кода? Вы получаете какие-либо ошибки или что? – Harrison

+0

извините. Я забыл эту информацию. Я получаю эту ошибку: IndentationError: Отсутствует круглые скобки при вызове 'print'. –

+0

Может кто-нибудь мне помочь? –

ответ

2

Будет лучше, если вы сбросите параметр keyword, types уже ищет рестораны.

Помните, что API Places (как и другие API Карт Google) не является базой данных, он не будет возвращать все результаты, которые соответствуют. Фактически возвращается только 20, и вы можете получить дополнительные 40 или около того, но это все.

Если я правильно читал GooglePlaces, ваш код будет отправить запрос API, такие как:

http://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.507351,-0.127758&radius=1000&types=restaurant&keyword=Restaurants&key=YOUR_API_KEY

Если вы просто уронить параметр keyword, это будет, как:

http://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.507351,-0.127758&radius=1000&types=restaurant&key=YOUR_API_KEY

Разница тонкая: keyword=Restaurants сделает результаты сопоставления API, которые имеют название «Рестораны» в их имени, адресе и т. Д. Некоторые из них, возможно, не рестораны (и будут отброшены), в то время как некоторые фактические рестораны могут не иметь в них слова «Рестораны».