У меня есть географическое местоположение, которое я хотел бы представить в виде строки.
Я пытался использовать str(location.address)
, но это дает слишком длинную строку, например 48, De Keyserlei, Statiekwartier, Antwerpen, Vlaanderen, 2018, België - Belgique - Belgien
После некоторых исследований в Интернете я нашел способ получить местоположение в качестве словаря, чтобы я мог создать свой собственный адрес, добавив значения этого словаря.
Тогда проблема в том, что, например, не все адреса имеют улицу, или у некоторых есть город вместо города, и есть намного больше исключений, слишком много, чтобы проверить все, есть ли в словаре.
Вот пример кода для проверки:
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="[PlaceHolder]")
location = geolocator.reverse("51.217497747238106, 4.418478198686335")
print(str(location.address)) # Way too long address
def location_str(location):
addr_dict = location.raw["address"]
location_str = addr_dict["road"] + " " \
+ addr_dict["house_number"] + ", " \
+ addr_dict["postcode"] + " " \
+ addr_dict["city"]
return location_str
print(location_str(location)) # Works as I want it to be
# Let's try a different address
location = geolocator.reverse("51.217497747238106, 4.418478198686335")
print(location_str(location)) # KeyError: 'road' (because the address doesn't have a road)
Итак, знаете ли вы способ представить это местоположение в виде короткой читаемой строки?