import requests from pprint import pprint OVERPASS_URL = "https://overpass-api.de/api/interpreter" BERGBAHN_QUERY = """ [out:json][timeout:3][maxsize:500000]; ( node["aerialway"="station"]({bbox}); way["aerialway"="station"]({bbox}); node["railway"="funicular"]({bbox}); way["railway"="funicular"]({bbox}); node["railway"="station"]["funicular"="yes"]({bbox}); ); out center body; """ def fetch_bergbahnen(bbox) -> dict: bbox_str = ",".join(map(str, bbox)) query = BERGBAHN_QUERY.format(bbox=bbox_str) resp = requests.post( OVERPASS_URL, data={"data": query}, timeout=5, headers={"User-Agent": "CDS Exercise"}, ) return resp.json() if __name__ == "__main__": bbox = (46.72, 9.70, 46.92, 10.00) result = fetch_bergbahnen(bbox) pprint(result)