Convertir les code insee en nom de ville

This commit is contained in:
Sdj Geek 2020-08-03 22:40:21 +02:00
parent 6e4f587cce
commit cfdab63598
2 changed files with 52 additions and 0 deletions

View File

@ -5,6 +5,7 @@ Voir le fichier LICENSE
"""
from abc import ABC, abstractmethod
from site_opendatasoft import get_ville_from_cog
class MembreBase(ABC):
@ -55,6 +56,29 @@ class MembreBase(ABC):
self.i_jour_deces = insee.jour_deces
self.i_ville_deces = insee.code_lieu_deces
def convertir_villes_insee(self):
old_value = self.i_ville_naissance
new_value = None
try:
int(self.i_ville_naissance)
except ValueError:
pass
else:
new_value = get_ville_from_cog(self.i_ville_naissance)
if new_value is not None:
self.i_ville_naissance = new_value
if old_value == self.i_ville_deces:
self.i_ville_deces = new_value
else:
try:
int(self.i_ville_deces)
except ValueError:
pass
else:
new_value = get_ville_from_cog(self.i_ville_deces)
if new_value is not None:
self.i_ville_deces = new_value
def get_texte_decede(self):
if self.r_sexe == "F":
feminin = "e"
@ -62,6 +86,7 @@ class MembreBase(ABC):
feminin = ""
else:
feminin = "(e)"
self.convertir_villes_insee()
return f"""
Le membre {self.get_nom_registres()} ({self.r_id}),
{feminin} le {self.r_jour:0>2}/{self.r_mois:0>2}/{self.r_annee:0>4} à {self.r_ville.upper()}

View File

@ -0,0 +1,27 @@
"""
Copyright (c) 2020 Sdj Geek
Voir le fichier LICENSE
Classe d'accès aux données du site https://public.opendatasoft.com
"""
import requests
def get_ville_from_cog(cog):
r = requests.get("https://public.opendatasoft.com/api/records/1.0/search/",
params={'dataset': "correspondance-code-insee-code-postal",
'q': f"insee_com={cog}",
'lang': "fr"},
headers={'Accept': "application/json"})
try:
r.raise_for_status()
except requests.HTTPError:
print(f"Warning get_ville_from_cog: requests return status {r.headers}")
return None
result = r.json()
if result['nhits'] > 0:
return f"{result['records'][0]['fields']['nom_comm']} ({result['records'][0]['fields']['postal_code']})"
print(f"Warning get_ville_from_cog: no result returned for cog {cog}")
return None