2016-01-27 2 views
0

Во-первых, извините за то, насколько плохо мой вопрос сформулирован, но я не уверен на 100%, как объяснить, что я ищу. Я использую пакет gey в python.Получение конкретной информации из исходной информации в python

В основном я использую следующий код:

geolocator = Nominatim() 
location = geolocator.reverse("{}, {}".format(lat, lon)) 
print(location.address) 
print((location.latitude, location.longitude)) 
print(location.raw) 

Пример вывода она дает мне это:

Coastal Track, Totaranui, Tasman, New Zealand/Aotearoa 

(-40.8274559, 173.0053319) 

{u'display_name': u'Coastal Track, Totaranui, Tasman, New Zealand/Aotearoa', u'place_id': u'93390086', u'lon': u'173.0053319', u'osm_type': u'way', u'licence': u'Data \xa9 OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright', u'osm_id': u'149082205', u'lat': u'-40.8274559', u'address': {u'path': u'Coastal Track', u'state': u'Tasman', u'country': u'New Zealand/Aotearoa', u'country_code': u'nz', u'hamlet': u'Totaranui'}} 

То, что я хочу сделать, это такие вещи, как osm_id, osm_type и т.д., и создайте для них переменную. Я пробовал что-то вроде location.raw.attrib ['osm_type'], но это не работает. Я новичок в python, поэтому буду очень благодарен за любую помощь, и я надеюсь, что я был достаточно ясен с тем, что я прошу, спасибо!

+0

«Что я хочу сделать, так это использовать osm_id, osm_type и т. Д. И создать для них переменную». <- Не могли бы вы быть менее расплывчатыми? – timgeb

+0

например, где он говорит u'osm_type ': u'way' Я хотел бы иметь возможность создать переменную, например type = way, это имеет смысл? – RyanKilkelly

ответ

1

Что вы ищете, это вызов пар ключ-значение из словарей. Таким образом, чтобы получить то, что вы хотите, osm_id и osm_type в переменных, вы могли бы сделать это:

osmid = location['osm_id'] 

Вы называете часть словаря, который Вы хотите с именем словаря (место нахождения) и имя ключа, хотите получить значение. Затем мы храним его в osmid.

0

Ответ n1c9 будет выдавать ключевую ошибку, если ключ не существует. Пожалуйста, используйте:

dict = location.raw 
osmid = dict.get('osm_id', 'default_value_if_null_here') 
+1

Разве это не будет хорошо? Я думаю, мы ожидаем, что все экземпляры 'location' будут иметь необходимые ключи. –

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