BTW my extended answer which also includes a reverse geo-location lookup is in this public repository:
https://github.com/MarsFlyer/GPXtools
It uses the the geocoder library and the OpenStreetMap's Nomanatim service. As this is a public facility with throttling, I've also used the ratelimit library.
from geopy.geocoders import Nominatim
from ratelimit import limits, sleep_and_retry
The location address has lots of sub-parts, so the getLocation function tries to reduce duplicated place names. You may want to adjust that to cope with how your local place names are handled.