Сложно получить названия городов и районов в Geopy (Google Maps) - PullRequest
0 голосов
/ 17 июня 2019

Я использую Geopy для вызова разных адресов, чтобы увидеть, к каким городам и районам они принадлежат.

from geopy.geocoders import GoogleV3
import json

places = '1238 Davie St, Vancouver, BC'

geolocator = GoogleV3(api_key='')
location = geolocator.geocode(places, language='en')

c = location.raw['address_components']
print c

counties = [c['long_name'] for c in c if 'neighborhood' in c['types']]
localities = [c['long_name'] for c in c if 'locality' in c['types']]
print counties, localities

Это работает для округов, но не населенных пунктов (городов).

[{u'long_name': u'1238', u'types': [u'street_number'], u'short_name': u'1238'}, {u'long_name': u'Davie Street', u'types': [u'route'], u'short_name': u'Davie St'}, {u'long_name': u'Central Vancouver', u'types': [u'neighborhood', u'political'], u'short_name': u'Central Vancouver'}, {u'long_name': u'Vancouver', u'types': [u'locality', u'political'], u'short_name': u'Vancouver'}, {u'long_name': u'Greater Vancouver', u'types': [u'administrative_area_level_2', u'political'], u'short_name': u'Greater Vancouver'}, {u'long_name': u'British Columbia', u'types': [u'administrative_area_level_1', u'political'], u'short_name': u'BC'}, {u'long_name': u'Canada', u'types': [u'country', u'political'], u'short_name': u'CA'}, {u'long_name': u'V6E 1N3', u'types': [u'postal_code'], u'short_name': u'V6E 1N3'}]
[u'Central Vancouver']

---> 32 localities = [c['long_name'] for c in c if 'locality' in c['types']]
     33 print counties,     localities

TypeError: string indices must be integers

Не уверен, почему я получаю эту ошибку. Я также хочу иметь возможность передавать столбец Pandas вместо ввода статического адреса, есть ли удобный способ сделать это?

...