IndexError: индекс списка вне допустимого диапазона (Python программа для преобразования адреса в географические координаты - PullRequest
0 голосов
/ 27 мая 2020

Я попробовал следующий код для преобразования адресов в географические координаты и получил следующую ошибку.

Traceback (most recent call last):
  File "/tmp/sessions/cac34a57fd2090d2/main.py", line 7, in <module>
    my_geo = results[0]['geometry']['location']
IndexError: list index out of range

Вот код, который я написал:

import requests
geo_url = 'http://maps.googleapis.com/maps/api/geocode/json'

my_address = {'address': '45 Ramkrishana Road,East Burdwan, West Bengal, India', 
             'language': 'en'}

response = requests.get(geo_url, params = my_address)

results = response.json()['results']

my_geo = results[0]['geometry']['location']

print("Longitude:",my_geo['lng'],"\n","Latitude:",my_geo['lat'])

1 Ответ

0 голосов
/ 27 мая 2020

Чтобы использовать API карт Google, вам потребуется ключ API , для которого необходимо настроить платежный аккаунт. У вас есть API-ключ? Возможная строка запроса к их API, которую Google предоставляет в качестве примера, выглядит следующим образом:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

Как видите, последний параметр - это ваш ключ API, который является обязательным. Если вы не передадите ключ API, ответ будет выглядеть так:

{
   "error_message" : "You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account",
   "results" : [],
   "status" : "REQUEST_DENIED"
}

results будет пустым списком, следовательно, IndexError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...