2020-06-05 13:48:47 +02:00
|
|
|
from json import dump
|
2020-06-12 19:21:50 +02:00
|
|
|
|
2020-05-21 18:45:51 +02:00
|
|
|
from requests import get
|
2020-06-12 19:21:50 +02:00
|
|
|
|
2020-06-10 23:29:56 +02:00
|
|
|
from constants import FILES, URL
|
2020-05-21 18:45:51 +02:00
|
|
|
|
|
|
|
|
2020-06-05 13:48:47 +02:00
|
|
|
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
|
|
|
|
"""
|
2020-06-10 21:49:58 +02:00
|
|
|
with open(FILES[dataset], "w") as f:
|
2020-05-21 18:45:51 +02:00
|
|
|
dump(data, f, ensure_ascii=False)
|
|
|
|
|
|
|
|
|
2020-06-05 13:48:47 +02:00
|
|
|
def request_dataset(dataset):
|
|
|
|
"""
|
|
|
|
Fetches the requested dataset from opendata's API
|
2020-06-12 19:21:50 +02:00
|
|
|
Raises an exception if there's an HTTP error
|
2020-06-05 13:48:47 +02:00
|
|
|
"""
|
|
|
|
url = format_url(dataset)
|
2020-05-22 20:58:52 +02:00
|
|
|
response = get(url)
|
|
|
|
response.raise_for_status()
|
|
|
|
data = response.json()
|
2020-06-05 13:48:47 +02:00
|
|
|
save_json(data=data, dataset=dataset)
|