67 lines
2.3 KiB
Python
67 lines
2.3 KiB
Python
|
# encoding: utf-8
|
|||
|
"""
|
|||
|
Tool used to upload representatives from French National Assembly.
|
|||
|
"""
|
|||
|
|
|||
|
import csv
|
|||
|
import json
|
|||
|
import os
|
|||
|
import sys
|
|||
|
|
|||
|
TYPES = {
|
|||
|
"API": "Assemblée parlementaire internationale",
|
|||
|
"ASSEMBLEE": "Assemblée Nationale",
|
|||
|
"CJR": "Cour de Justice de la République",
|
|||
|
"CMP": "Commission mixte paritaire",
|
|||
|
"CNPE": "Commission d’enquête",
|
|||
|
"CNPS": "Commission spéciale",
|
|||
|
"COMNL": "Autre commission permanente",
|
|||
|
"COMPER": "Commission permanente législative",
|
|||
|
"COMSENAT": "Commission sénatoriale",
|
|||
|
"COMSPSENAT": "Commission spéciale sénatoriale",
|
|||
|
"CONFPT": "Conférence des Présidents",
|
|||
|
"CONSTITU": "Conseil constitutionnel",
|
|||
|
"DELEG": "Délégation parlementaire",
|
|||
|
"DELEGBUREAU": "Délégation du Bureau de l'Assemblée Nationale",
|
|||
|
"DELEGSENAT": "Délégation sénatoriale",
|
|||
|
"GA": "Groupe d'amitié",
|
|||
|
"GE": "Groupe d'études",
|
|||
|
"GEVI": "Groupe d’études à vocation internationale",
|
|||
|
"GOUVERNEMENT": "Gouvernement",
|
|||
|
"GP": "Groupe politique",
|
|||
|
"GROUPESENAT": "Groupe sénatorial",
|
|||
|
"HCJ": "Haut Cour de Justice",
|
|||
|
"MINISTERE": "Ministère",
|
|||
|
"MISINFO": "Mission d’information",
|
|||
|
"MISINFOCOM": "Mission d’information commune",
|
|||
|
"MISINFOPRE": "Missions d’information de la conférence des Présidents",
|
|||
|
"OFFPAR": "Office parlementaire ou délégation mixte",
|
|||
|
"ORGEXTPARL": "Organisme extra parlementaire",
|
|||
|
"PARPOL": "Parti politique",
|
|||
|
"PRESREP": "Présidence de la République",
|
|||
|
"SENAT": "Sénat",
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
# Extract types
|
|||
|
print("Scraping types")
|
|||
|
with open("../tmp/assemblee_nationale_types.csv", "w", encoding="utf-8", newline="") as csvfile:
|
|||
|
writer = csv.writer(csvfile, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL)
|
|||
|
writer.writerow(["code", "name"])
|
|||
|
|
|||
|
types = {}
|
|||
|
for filename in os.listdir("../tmp/json/organe"):
|
|||
|
print(".", end="")
|
|||
|
sys.stdout.flush()
|
|||
|
# Loading informations
|
|||
|
with open(os.path.join("../tmp/json/organe", filename)) as file_handler:
|
|||
|
organe = json.load(file_handler)["organe"]
|
|||
|
if organe["codeType"].upper() not in types:
|
|||
|
types[organe["codeType"].upper()] = TYPES.get(organe["codeType"].upper(), organe["codeType"].upper())
|
|||
|
for type_code in types:
|
|||
|
# CSV line
|
|||
|
writer.writerow([
|
|||
|
type_code,
|
|||
|
types[type_code],
|
|||
|
])
|