Цикл OSMNX с геокодером

#python-3.x #openstreetmap #osmnx

#python-3.x #openstreetmap #osmnx

Вопрос:

Каков был бы наилучший способ перебора списка адресов с использованием geocoder.geocode , если есть некоторые местоположения, которых нет на карте? Как я мог пропустить их, чтобы цикл продолжался без этого исключения? Exception: Nominatim geocoder returned no results for query "Beli manastir planina,Bakar,Croatia" Ниже приведено то, что я пробовал.

 L = [location1, location2, location3, ..., location n]
KO = []
for l in L:
    KO = list(ox.geocoder.geocode(l))
    if Exception:
        continue
    KO.append(KO)
  

Также я попробовал это:

 try: 
    KO = []
    for l in L:
         KO = list(ox.geocoder.geocode(l))
         KO.append(KO)
except Exception:
    pass
  

Любая помощь приветствуется.

Комментарии:

1. Ничего не происходит, когда я запускаю второй фрагмент. Я не получаю никаких результатов и никаких ошибок. Вот и пример списка L L = ['Pazinska,Zagreb,Croatia','Pulska, Pazin,Croatia','Zadarska,Zagreb,Croatia','Pazinska,Pula,Croatia'] Второе местоположение не существует и должно быть пропущено. Теоретически

2. Я думаю, что результатом этого цикла должен быть список списков.

Ответ №1:

Вложите свой цикл for и попробуйте / except по-другому. Вот минимальный воспроизводимый пример:

 import osmnx as ox
ox.config(log_console=True, use_cache=True)

locations= ['Pazinska,Zagreb,Croatia',
            'Pulska, Pazin,Croatia',
            'Zadarska,Zagreb,Croatia',
            'Pazinska,Pula,Croatia']

coords = []
for location in locations:
    try: 
        coords.append(ox.geocoder.geocode(location))
    except Exception as e:
        print(e)