Packages

Elixir library to get all `Provinces/Municiplaities/Municipal Ditrics` of Dominican Republic 🇩🇴.

Current section

Files

Jump to
provinces_dr src provinces_script.py
Raw

src/provinces_script.py

import requests
# URL Of api base
URL_PROVINCES = 'http://provinciasrd.raydelto.org/provincias'
URL_MUNICIPALITIES = 'http://provinciasrd.raydelto.org/provincias/{id}/municipios'
URL_MUNICIPAL_DISTRICTS = 'http://provinciasrd.raydelto.org/provincias/{id}/distritos_municipales'
def request_api(url) -> dict:
return requests.get(url).json().get('data', [])
def get_provinces() -> dict:
return request_api(URL_PROVINCES)
def get_municipalities(id_province: int) -> dict:
url = URL_MUNICIPALITIES.format(id=id_province)
return request_api(url)
def get_municipal_districts(id_province: int) -> None:
url = URL_MUNICIPAL_DISTRICTS.format(id=id_province)
return request_api(url)
def parser_data(values) -> str:
return ",".join(list(map(
lambda x: f'{x.get("codigo")}:{x.get("nombre")}',
values
)))
def save_provinces_details(provinces: list) -> None:
for province in provinces:
province_id = province.get("codigo", 0)
municipalities = get_municipalities(province_id)
municipal_districts = get_municipal_districts(province_id)
# parser
municipalities = parser_data(municipalities)
municipal_districts = parser_data(municipal_districts)
with open('provinces_details.txt', 'a') as fl:
line = f'{province.get("codigo")},{province.get("nombre")}|{municipalities}|{municipal_districts}\n'
fl.write(line)
def save_provinces(provinces: list) -> None:
provinces_parsed = parser_data(provinces)
with open('provinces.txt', 'a') as fl:
fl.write(provinces_parsed)
def main():
provinces = get_provinces()
# save_provinces(provinces)
save_provinces_details(provinces)
if __name__ == '__main__':
main()