34 lines
707 B
Python
34 lines
707 B
Python
from json import dump
|
|
|
|
from requests import get
|
|
|
|
from constants import FILES, URL
|
|
|
|
|
|
def format_url(dataset) -> str:
|
|
"""
|
|
Constructs the API's URL for the requested dataset
|
|
"""
|
|
link = URL.format(dataset)
|
|
return link
|
|
|
|
|
|
def save_json(data, dataset):
|
|
"""
|
|
Dumps the data into a JSON file
|
|
"""
|
|
with open(FILES[dataset], "w") as f:
|
|
dump(data, f, ensure_ascii=False)
|
|
|
|
|
|
def request_dataset(dataset):
|
|
"""
|
|
Fetches the requested dataset from opendata's API
|
|
Raises an exception if there's an HTTP error
|
|
"""
|
|
url = format_url(dataset)
|
|
response = get(url)
|
|
response.raise_for_status()
|
|
data = response.json()
|
|
save_json(data=data, dataset=dataset)
|