Spaces:
Sleeping
Sleeping
import http.client | |
import json | |
conn = http.client.HTTPSConnection("api.les-aides.fr") | |
payload = '' | |
headers = { | |
'X-IDC': 'bcfac1828e5ef1b7cab084379a5f2a871e82ee7c', | |
} | |
requestID = 23994079 | |
filieres = [ 289, 290 ] | |
domaines = [893,883,877,790,793,798,802,805,862,807,810,813,816,820,818] | |
def request(filiere, domaines): | |
conn.request("GET", f"/aides?ape=A®ion=75&domaine={domaines}&filiere={filiere}", payload, headers) | |
res = conn.getresponse() | |
data = res.read() | |
data = json.loads(data.decode("utf-8")) | |
print(f"Total subventions : {len(data['dispositifs'])}") | |
for i in range(len(data['dispositifs'])): | |
data['dispositifs'][i]['idr'] = data['idr'] | |
return data['dispositifs'] | |
def get_final_type(types): | |
return None # Return None if no matching type is found | |
def getAide(aide): | |
try: | |
conn.request("GET", f"/aide/?requete={aide['idr']}&dispositif={aide['numero']}", payload, headers) | |
res = conn.getresponse() | |
aide = json.loads(res.read().decode("utf-8")) | |
# if 'cci' in aide: | |
# del aide['cci'] | |
# if 'url' in aide: | |
# del aide['url'] | |
aide["metadata"] = { | |
# "type_aide": get_final_type(aide["prets"]), | |
"lien": aide['uri'], | |
"Source": f"https://les-aides.fr/" | |
} | |
return aide | |
except Exception as e: | |
print(aide) | |
print(f"Error: {e}") | |
return None | |
subventions = [] | |
# Split domaines into two sections | |
domaines_section_2 = "[893,883,877,790,793,798,802]" | |
domaines_section_1 = "[805,862,807,810,813,816,820,818]" | |
# Function to add dispositifs to subventions list without duplication | |
def add_dispositifs(filiere, domaines_section): | |
print(f"Requesting filiere {filiere} and domaines {domaines_section}") | |
dispositifs = request(filiere, domaines_section) | |
for dispositif in dispositifs: | |
if not any(subvention.get("numero") == dispositif["numero"] for subvention in subventions if isinstance(subvention, dict)): | |
subventions.append(dispositif) | |
# Call request function with different parameters | |
for filiere in filieres: | |
add_dispositifs(filiere, domaines_section_1) | |
add_dispositifs(filiere, domaines_section_2) | |
print(f"Nb aides : {len(subventions)}") | |
for i in range(len(subventions)): | |
print(f"{subventions[i]['numero']} : {i} / {len(subventions)}") | |
subventions[i] = getAide(subventions[i]) | |
# print(subventions) | |
with open('data/les_aides.json', 'w', encoding='utf-8') as f: | |
json.dump(subventions, f, ensure_ascii=False, indent=4) |