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],
|
||
])
|