ia-subvention / data /aides_territoires.py
Update data handling and API request parameters for aides
76f1467
raw
history blame
2.23 kB
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)