Вы получаете эту ошибку, потому что вы передали неправильный тип geolocator.geocode
, который принимает запросы либо как dict
(используется для структурированных запросов), либо как str
, когда вы пытаетесь передать список Python.
См. Документ GeoPy: https://geopy.readthedocs.io/en/stable/#nominatim
Таким образом, простой, хотя и не обязательно эффективный способ получения необходимой информации - просто передать каждый район, закодированный в виде строки, вВаш экземпляр геолокации индивидуально.Должно работать что-то вроде следующего:
# your usual imports and data assigments
locations = [geolocator.geocode(borough) for borough in address]
from pprint import pprint
pprint(locations)
---
[Location(Toronto, Golden Horseshoe, Ontario, M6K 1X9, Canada, (43.653963, -79.387207, 0.0)),
Location(East York, Toronto—Danforth, East York, Toronto, Golden Horseshoe, Ontario, M4J 2G9, Canada, (43.6913391, -79.3278212, 0.0)),
Location(Davenport, Scott County, Iowa, USA, (41.5236436, -90.5776368, 0.0)),
Location(Eglinton, County Londonderry, Northern Ireland, BT47 3GY, United Kingdom, (55.0266097, -7.176451, 0.0)),
Location(Etobicoke, Toronto, Golden Horseshoe, Ontario, Canada, (43.67145915, -79.5524920661167, 0.0)),
Location(Toronto—Danforth, Old Toronto, Toronto, Golden Horseshoe, Ontario, Canada, (43.6789439, -79.3448597, 0.0))]
И отсюда вы сможете получить широты, долготы и все, что вам нужно из этого списка Location
объектов.
Также обратите внимание, что «Davenport» и «Eglinton» явно не были достаточно однозначными, поэтому вы можете указать «Davenport, Toronto» и т. Д.
Последнее примечание: метод geocode
для Nominatim
class имеет необязательный аргумент exactly_one
(True
по умолчанию), поэтому, возможно, существует какой-то способ для вас получить геокодированные местоположения всего вашего списка различных адресов с помощью одного вызова метода, но я не сделалдействительно посмотрите, как это сделать (если это вообще возможно), так как я никогда не использовал GeoPy, и я сам не знаком с предметом геокодирования.
Кстати, я тоже из Торонто, поэтомуЯ знаю все эти места, которые вы упомянули: D