Spaces:
Running
Running
import http.client | |
import json | |
conn = http.client.HTTPSConnection("aides-territoires.beta.gouv.fr") | |
headersConnexion = { | |
'X-AUTH-TOKEN': 'eeb481e42950f1dbfc46dc348e6e32a0c631cc5b94dd7ab874a30c027f9de87c', | |
} | |
perimeter_id = '71054-yvelines' | |
organization_type_slugs = 'private-sector' | |
def connexion(): | |
conn.request("POST", "/api/connexion/", '', headersConnexion) | |
data = conn.getresponse().read() | |
return json.loads(data.decode("utf-8"))['token'] | |
def get_final_type(types): | |
type_mapping = { | |
"Subvention": 2, | |
"Prêt": 1, | |
"Avance récupérable": 1, | |
"Certificat d'économie d'énergie (CEE)": 4, | |
"Autre aide financière": 4, | |
"Ingénierie technique": 4, | |
"Ingénierie financière": 4, | |
"Ingénierie Juridique / administrative": 4 | |
} | |
final_type_mapping = { | |
1: "Avance − Prêts − Garanties", | |
2: "Subvention", | |
3: "Prise en charge des coûts et allègement des charges", | |
4: "Autres" | |
} | |
for t in types: | |
if t in type_mapping: | |
return final_type_mapping[type_mapping[t]] | |
return None # Return None if no matching type is found | |
def request(): | |
subventions = [] | |
page = 1 | |
while True: | |
conn.request("GET", f"/api/aids/?page={page}&organization_type_slugs={organization_type_slugs}&perimeter_id={perimeter_id}", '', headersRequest) | |
res = conn.getresponse().read() | |
resData = res.decode("utf-8") | |
data = json.loads(resData) | |
subventions += data['results'] | |
if data['next'] is None: | |
break | |
page += 1 | |
print(f"Total subventions : {len(data['results'])}") | |
return subventions | |
token = connexion() | |
headersRequest = { | |
'Authorization': 'Bearer ' + token, | |
} | |
aides = request() | |
print(f"Nb aides : {len(aides)}") | |
for aide in aides: | |
aide["metadata"] = { | |
"type_aide": get_final_type(aide["aid_types"]), | |
"lien": f"https://aides-territoires.beta.gouv.fr/aides/{aide['slug']}", | |
"Source": f"https://aides-territoires.beta.gouv.fr" | |
} | |
# print(subventions) | |
with open('data/aides_territoires.json', 'w', encoding='utf-8') as f: | |
json.dump(aides, f, ensure_ascii=False, indent=4) |