from dotenv import load_dotenv import os import urllib.parse import requests import json base_url = "https://wyre-data.p.rapidapi.com/restaurants/localauthority/" load_dotenv() boroughs = [ "barking and dagenham", "barnet", "bexley", "brent", "bromley", "camden", "croydon", "ealing", "enfield", "greenwich", "hackney", "hammersmith and fulham", "haringey", "harrow", "havering", "hillingdon", "hounslow", "islington", "kensington and chelsea", "kingston upon thames", "lambeth", "lewisham", "merton", "newham", "redbridge", "richmond upon thames", "southwark", "sutton", "tower hamlets", "waltham forest", "wandsworth", "westminster"] final = [] for borough in boroughs: borough_encoded = urllib.parse.quote(borough) response = requests.get(base_url + borough_encoded, headers={"x-rapidapi-key": os.getenv('WYRE_API_KEY')}) results = response.json() print(results) for result in results: bizType = result.get("BusinessType", "missing") if(bizType == "Pub/bar/nightclub"): new_obj = { "objectID": result["_id"], "name": result.get("BusinessName", ""), "business_type": result.get("BusinessType"), "borough": result.get("LocalAuthorityName", ""), "postcode": result.get("PostCode", ""), "address": ", ".join(filter(None, [result.get("AddressLine1", ""), result.get("AddressLine2", "")])), "_geoloc": { "lat": result.get("Geocode_Latitude") or 0.0, "lng": result.get("Geocode_Longitude") or 0.0, } } final.append(new_obj) with open("./data/pubs.json", "w") as f: f.write(json.dumps(final))