#python #geopy
Вопрос:
Я пытался решить конкретную проблему — извлечь местоположение/адрес из предопределенного списка. Список представляет собой сообщение электронной почты, в котором обязательно будет указан адрес. Я не нашел никакого эффективного способа, как это сделать, однако у меня появилась какая-то идея.
Я мог бы просмотреть сообщение, используя цикл for и указать, имеет ли последовательность слов атрибут долготы/широты. Если нет, то слово будет удалено, если да, то слово останется в новом списке, и цикл будет проходить через следующие слова.
Таким образом, я могу различить, какие слова являются адресом, и я, безусловно, могу извлечь адрес. Как вы думаете, этот способ может быть эффективным? Если нет, есть ли более сложный/лучший способ извлечь адрес из строки?
Например:
email = "Hello, I am looking forward to your letter, please send it on 20 W 34th St, New York, NY 10001, USA"
Я хочу извлечь:
adress = "20 W 34th St, New York, NY 10001, USA"
У меня есть этот фрагмент кода:
email = email.split()
from geopy.geocoders import Nominatim
adress_scan = []
geolocator = Nominatim(user_agent = "sth", timeout = 10)
for i in adresa:
adresa_scan.append(i)
location = geolocator.geocode(str(adresa_scan))
if hasattr(adresa_scan, 'longitude') == False:
adresa_scan.remove(i)
print(adresa_scan)
Программа продолжает печатать пустой список, и я не знаю, почему. Спасибо, я ценю любую помощь:)
Комментарии:
1. Не могли бы вы, пожалуйста, определить адрес?
2. @dtc348 о, это небольшая ошибка — адрес должен быть адресом, что, должно быть, произошло во время перевода имен переменных, спасибо за напоминание:)
3. Эй, просто используй этот код. импорт pyap; адреса = pyap.анализ(электронная почта, страна=»США»); печать(адреса)
4. @dtc348 спасибо, да, это, конечно, работает, но он поддерживает только адреса США, Великобритании и Канады. Есть ли способ проанализировать адреса по всему миру (например, европейские)?
5. Я думаю, что у нас нет никакой библиотеки python для адресов по всему миру. Вот почему я использую Google API, где вам нужно указать такие параметры, как веб-сайт, название компании.