File size: 2,878 Bytes
c6aa119
bdbfec0
c6aa119
 
bdbfec0
c6aa119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b29661
c6aa119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b29661
c6aa119
 
 
 
 
 
e09c0f9
c6aa119
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Importation des bibliothèques nécessaires
import streamlit as st
import pandas as pd
import requests

# Fonction pour récupérer les données de l'API
def get_data():
    """
    Cette fonction effectue une requête GET vers l'API spécifiée et retourne une liste des enregistrements (records).
    Elle utilise l'URL de l'API pour récupérer les données des établissements engagés dans la RSE à Bordeaux.
    La fonction gère également les éventuelles erreurs de requête.
    
    Returns:
        List[Dict]: Une liste de dictionnaires où chaque dictionnaire représente les données d'un établissement.
    """
    # URL de l'API pour accéder aux données des établissements RSE
    url = "https://opendata.bordeaux-metropole.fr/api/records/1.0/search/?dataset=met_etablissement_rse&q=&rows=100"
    # Envoi de la requête GET à l'API
    response = requests.get(url)
    # Vérification du statut de la réponse
    if response.status_code == 200:
        # Conversion de la réponse en JSON
        data = response.json()
        # Récupération des enregistrements (records) depuis la réponse
        records = data.get("records", [])
        # Extraction des champs (fields) de chaque enregistrement
        return [record["fields"] for record in records]
    else:
        # Retourne une liste vide si la requête échoue
        return []

# Fonction pour afficher les organisations engagées dans l'application Streamlit
def display_organisations_engagees():
    """
    Cette fonction récupère les données des organisations engagées via la fonction `get_data`, les convertit en un DataFrame pandas,
    puis utilise Streamlit pour les afficher dans un tableau sur l'interface utilisateur.
    """
    # Récupération des données via la fonction get_data
    data = get_data()
    # Vérification si des données ont été récupérées
    if data:
        # Conversion des données en DataFrame pandas pour une manipulation et un affichage plus faciles
        df = pd.DataFrame(data)
        # Affichage du DataFrame dans l'application Streamlit
        st.write("Organisations engagées", df)
    else:
        # Message d'erreur en cas d'absence de données
        st.write("Aucune donnée disponible.")

# Point d'entrée principal de l'application Streamlit
if __name__ == "__main__":
    # Configuration de la barre latérale pour la navigation entre différents onglets
    st.sidebar.title("Navigation")
    # Option de sélection pour les différents onglets de l'application
    app_mode = st.sidebar.selectbox("Choisissez l'onglet", ["Organisations engagées", "Autre Onglet"])

    # Affichage de l'onglet "Organisations engagées" si sélectionné
    if app_mode == "Organisations engagées":
        display_organisations_engagees()
    # Cette structure peut être étendue pour ajouter d'autres onglets à l'application