tools/assemblee_nationale/scrap_types.py

67 lines
2.3 KiB
Python
Raw Normal View History

2021-07-23 17:21:38 +02:00
# 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 denquê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 dinformation",
"MISINFOCOM": "Mission dinformation commune",
"MISINFOPRE": "Missions dinformation 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],
])