28 septembre 2014.
Les résultats des élections sénatoriales disponibles en open-data. Poursuivant la démarche d’ouverture de ses bases de données (« Open Data »), le Sénat met en place un dispositif spécial à l’occasion du scrutin sénatorial de septembre 2014.
Les résultats, circonscription par circonscription, sont disponibles au fil de leur transmission par les préfectures et de leur intégration dans les systèmes d’information du Sénat en un unique flux JSON accessible à tous à l’adresse http://www.senat.fr/senatoriales_2014/json/flux.json.
Ce flux consiste en une liste des candidatures, puis de résultats, par circonscription. Les enregistrements de type « Circonscriptions » sont renseignés de deux manières différentes, selon que les sénateurs sont élus au scrutin majoritaire ou à la représentation proportionnelle (en savoir plus sur le mode de scrutin).
Ces enregistrements pourront être aisément distingués par leur champ type, qui pourra prendre pour valeur « Majoritaire » ou « Proportionnelle ».
Un enregistrement d’une circonscription contient les champs suivants :
Nom | Type | Valeur(s) possible(s) | Peut être « null » | Observations |
type | Chaîne | Majoritaire / Proportionnelle | Non | Identifie le type de circonscription |
codeCirconscription | Chaîne | Alpha- -numérique |
Non | Code minéralogique de la circonscription. Attention, cela n’est pas forcément un nombre |
codeElections | Chaîne | Alpha- -numérique |
Non | Code Sénat de la circonscription |
listes | Liste d’enregistrements de type liste | [ ] | Non | Toujours vide pour une circonscription à scrutin majoritaire |
candidats | Liste d’enregistrements de type candidat | Non | Vide lorsque les candidatures ne sont pas encore disponibles. Toujours vide pour un scrutin proportionnel, où les candidats sont regroupés par listes | |
participationPremierTour | Enregistrements de type participation | Oui | « null » quand les résultats du premier tour ne sont pas disponibles | |
participationSecondTour | Enregistrements de type participation | Oui | « null » quand les résultats du second tour ne sont pas disponibles. Toujours « null » pour une circonscription à scrutin proportionnel |
Les candidatures sont déposées par listes dans les circonscriptions élues à la représentation proportionnelle.
Un enregistrement d’une liste contient les champs suivants :
Nom | Type | Valeur(s) possible(s) | Peut être « null » | Observations |
numero | Entier | Numérique | Non | Numéro de la liste, assigné en préfecture lors du dépôt |
libelle | Chaîne | Alphanumérique | Non | Intitulé de la liste |
voix | Entier | Numérique | oui | « null » tant que les résultats ne sont pas connus |
candidats | Liste d’enregistrements de type candidat | Non | Liste des candidats de cette liste. Le candidat ayant le numéro le plus bas, qui peut ne pas être 1 dans certains cas particuliers, est la tête de liste |
Un candidat est représenté par un même enregistrement, quel que soit le type de scrutin.
Un enregistrement de candidat contient les champs suivants :
Nom | Type | Valeur(s) possible(s) | Peut être « null » | Observations |
qualite | Chaîne | Monsieur /Madame /Mademoiselle |
Non | |
nom | Chaîne | Alpha- -numérique |
Non | |
prenom | Chaîne | Alpha- -numérique |
Non | |
matricule | Chaîne | 6 caractères alphanumérique | Oui | Lorsque le candidat est Sénateur (se représentant ou nouvellement élu après disponibilité des résultats), ancien Sénateur ou ministre, identifiant unique au Sénat |
numero | Entier | Numérique | Non | Position du candidat dans la liste. Attention, ne commence parfois pas à 1 |
sortant | Booléen | true false |
Non | Indique si le candidat est un Sénateur se représentant |
nuancePolitique | Chaîne | Alpha- -numérique |
Non | Nuance politique, telle que définie par le ministère de l’intérieur |
codeNuancePolitique | Chaîne | Alpha- -numérique Cas particulier : nc pour « non communiqué » |
Non | Code de nuance politique, tel que défini par le ministère de l’intérieur |
voixPremierTour | Chaîne | Numérique | Oui | Voix obtenues au premier tour. « null » avant communication des résultats. Toujours « null » dans une circonscription à scrutin proportionnel |
eluPremierTour | Booléen | true false |
Oui | Indique si le candidat est élu au premier tour. « null » avant communication des résultats. Dans le cas d’un scrutin proportionnel, indique que le candidat est élu |
voixSecondTour | Entier | Numérique | Oui | Voix obtenues au second tour. « null » avant communication des résultats. Toujours « null » dans une circonscription à scrutin proportionnel |
eluSecondTour | Booléen | true false |
Oui | Indique si le candidat est élu au second tour. « null » avant communication des résultats. Toujours « null » dans une circonscription à scrutin proportionnel |
Un enregistrement de participation contient les champs suivants :
Nom | Type | Valeur(s) possible(s) | Peut être « null » | Observations |
inscrits | Entier | Numérique | Non | |
abstention | Entier | Numérique | Non | |
votants | Entier | Numérique | Non | |
blancs | Entiers | Numérique | Non | |
nuls | Entier | Numérique | Non | |
exprimés | Entier | Numérique | Non |
Les adresses des photos et notices des candidats en ayant sur le site du Sénat peuvent être déduites de leur nom, prénom et matricule, lorsque ce dernier est défini.
L’adresse de la notice est :
http://www.senat.fr/senateur/<identifiant>.html
L’adresse de la photo est :
http://www.senat.fr/senimg/<identifiant>.jpg
où
<identifiant> est l’agrégation du nom, d’un _ et d’un matricule, à laquelle est appliquée le traitement suivant :
1. tous les caractères sont transformés en minuscules non accentuées
2. tout ce qui n’est pas dans [a-z] est transformé en _
3. toute succession de _ est transformée en un seul _
Exemples :
- Mme Laurence Rossignol a pour identifiant rossignol_laurence11045k ;
- M. Albéric de Montgolfier a pour identifiant de_montgolfier_alberic08011m.
[ {
"codeCirconscription" : "09",
"codeElections" : "09",
"type" : "Majoritaire",
"listes" : [ ],
« candidats » : [ {
"qualite" : "Madame",
"nom" : "BLEU",
"prenom" : "Yolande",
"matricule" : "14012N",
"numero" : 3,
"sortant" : false,
"nuancePolitique" : "Divers droite",
"codeNuancePolitique" : "DVD",
"voixPremierTour" : 380,
"eluPremierTour" : true,
"voixSecondTour" : null,
"eluSecondTour" : false
}, {
"qualite" : "Madame",
"nom" : "AMANDE",
"prenom" : "Marie-France",
"matricule" : null,
"numero" : 7,
"sortant" : false,
"nuancePolitique" : "Communiste",
"codeNuancePolitique" : "COM",
"voixPremierTour" : 53,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : false
}, {
"qualite" : "Monsieur",
"nom" : "MAÏS",
"prenom" : "Pierre",
"matricule" : null,
"numero" : 5,
"sortant" : false,
"nuancePolitique" : "Majorité présidentielle",
"codeNuancePolitique" : "MAJ",
"voixPremierTour" : 19,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : false
} ],
« participationPremierTour » : {
« inscrits » : 761,
« abstention » : 13,
« votants » : 748,
« blancs » : 1,
« nuls » : 4,
« exprimes » : 743
},
« participationSecondTour » : null
}, {
« codeCirconscription » : « 69″,
« codeElections » : « 69″,
« type » : « Proportionnelle »,
« listes » : [ {
"numero" : 5,
"libelle" : "LISTE UNE",
"voix" : 323,
"candidats" : [ {
"qualite" : "Monsieur",
"nom" : "RUBIS",
"prenom" : "Robert",
"matricule" : null,
"numero" : 5,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}, {
"qualite" : "Monsieur",
"nom" : "CANNELLE",
"prenom" : "Antonin",
"matricule" : null,
"numero" : 7,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}, {
"qualite" : "Madame",
"nom" : "CUISSE DE NYMPHE",
"prenom" : "Maryse",
"matricule" : null,
"numero" : 4,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}, {
"qualite" : "Monsieur",
"nom" : "GARANCE",
"prenom" : "Maurice",
"matricule" : null,
"numero" : 1,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}]
}, {
« numero » : 8,
« libelle » : « LISTE DEUX »,
« voix » : 763,
« candidats » : [ {
"qualite" : "Monsieur",
"nom" : "VALLS",
"prenom" : "Manuel",
"matricule" : "12007V",
"numero" : 7,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}, {
"qualite" : "Madame",
"nom" : "MASTIC",
"prenom" : "Eliane",
"matricule" : null,
"numero" : 4,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}, {
"qualite" : "Monsieur",
"nom" : "ROSE SHOCKING",
"prenom" : "Jacques",
"matricule" : null,
"numero" : 3,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
}, {
"qualite" : "Monsieur",
"nom" : "ROUGE TURC",
"prenom" : "Serge",
"matricule" : null,
"numero" : 5,
"sortant" : false,
"nuancePolitique" : "non communiquée",
"codeNuancePolitique" : "nc",
"voixPremierTour" : null,
"eluPremierTour" : false,
"voixSecondTour" : null,
"eluSecondTour" : null
} ]
} ],
« candidats » : [ ],
« participationPremierTour » : {
« inscrits » : 3412,
« abstention » : 24,
« votants » : 3388,
« blancs » : 16,
« nuls » : 2,
« exprimes » : 3370
},
« participationSecondTour » : null
} ]
Tous les développeurs comptant utiliser ce flux peuvent nous contacter à opendata-tech@senat.fr afin d’obtenir plus d’informations et sont invités à consulter régulièrement le site data.senat.fr.
Un flux RSS est également disponible pour suivre l’actualité du site.