import os
import requests
import json
BASE_URL = "https://datavizs-geojson.vercel.app"
response = requests.get(BASE_URL)
response.raise_for_status()
data = response.json()
for item in data:
item_type = item["type"]
item_name = item["name"]
item_endpoint = item["endpoint"]
if item_type == "folder":
folder_path = os.path.join(os.getcwd(), item_name)
os.makedirs(folder_path, exist_ok=True)
response = requests.get(f"{BASE_URL}{item_endpoint}")
response.raise_for_status()
folder_data = response.json()
with open(os.path.join(folder_path, "data.json"), "w") as f:
json.dump(folder_data, f)
for subitem in folder_data:
subitem_type = subitem["type"]
subitem_name = subitem["name"]
subitem_endpoint = subitem["endpoint"]
if subitem_type == "folder":
subfolder_path = os.path.join(folder_path, subitem_name)
os.makedirs(subfolder_path, exist_ok=True)
response = requests.get(f"{BASE_URL}{subitem_endpoint}")
response.raise_for_status()
subfolder_data = response.json()
with open(os.path.join(subfolder_path, "data.json"), "w") as f:
json.dump(subfolder_data, f)
for subsubitem in subfolder_data:
subsubitem_type = subsubitem["type"]
subsubitem_name = subsubitem["name"]
subsubitem_endpoint = subsubitem["endpoint"]
if subsubitem_type == "geojson":
response = requests.get(f"{BASE_URL}{subsubitem_endpoint}")
response.raise_for_status()
geojson_data = response.json()
with open(os.path.join(subfolder_path, f"{subsubitem_name}.json"), "w") as f:
json.dump(geojson_data, f)
elif item_type == "geojson":
response = requests.get(f"{BASE_URL}{item_endpoint}")
response.raise_for_status()
geojson_data = response.json()
with open(os.path.join(os.getcwd(), f"{item_name}.json"), "w") as f:
json.dump(geojson_data, f)