-1

При использовании следующего кода я получаю много данных, но я хочу только хранить lat, длиной одной строки.Как получить long/long от google geocode API в python 3?

Это похоже на словарь, и я попытался получить к нему доступ, как один: strtLoc['location'], но только что получивший индекс должен быть int error. Когда я попытался индексировать, есть только одна запись и len(strtLoc) возвращает 1. В javascript я видел что-то вроде strtLoc.location, но я не могу понять, как получить только lat и long в python.

Python код: strtLoc = gmaps.geocode(address=startP)

результаты:

[{'types': ['locality', 'political'], 'formatted_address': 'New York, NY, USA', 'address_components': [{'long_name': 'New York', 'types': ['locality', 'political'], 'short_name': 'New York'}, {'long_name': 'New York', 'types': ['administrative_area_level_1', 'political'], 'short_name': 'NY'}, {'long_name': 'United States', 'types': ['country', 'political'], 'short_name': 'US'}], 'geometry': {'viewport': {'southwest': {'lat': 40.4773991, 'lng': -74.25908989999999}, 'northeast': {'lat': 40.9175771, 'lng': -73.70027209999999}}, 'location_type': 'APPROXIMATE', 'bounds': {'southwest': {'lat': 40.4773991, 'lng': -74.25908989999999}, 'northeast': {'lat': 40.9175771, 'lng': -73.70027209999999}}, 'location': {'lat': 40.7127837, 'lng': -74.0059413}}, 'place_id': 'ChIJOwg_06VPwokRYv534QaPC8g', 'partial_match': True}] 
+0

Он начинается с '[', что делает его список. Он содержит словарь. Попытайтесь приблизиться к координатам. –

+0

Я тоже пытался использовать индексирование, но есть только strtLoc [0], который содержит все вышеперечисленные данные. Я также попробовал цикл for для элемента в gmaps.geocode (address = startP): strtLoc.append (item) 'и имел ту же проблему. – user6912880

ответ

0

Проблема заключается в том, что API возвращает список, содержащий один элемент, так что вы можете получить доступ, что с strtLoc = strtLoc[0]. Затем вы можете получить доступ к свойствам lat и lng под ключом местоположения.

strtLoc = strtLoc[0] 
location = strtLoc['geometry']['location'] 
lat = location['lat'] 
lng = location['lng'] 

Если вы хотите как одну строку, вы можете присоединиться к ним с запятой, используя str.join()

location = ','.join([str(lat), str(lng)]) 

 Смежные вопросы

  • Нет связанных вопросов^_^