Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pandas as pd | |
| import requests | |
| def get_data(page, rows_per_page=25): | |
| """ | |
| Récupère les données paginées de l'API. | |
| Args: | |
| page (int): Numéro de la page à récupérer. | |
| rows_per_page (int): Nombre de lignes par page. | |
| Returns: | |
| List[Dict]: Données de la page spécifiée sous forme de liste de dictionnaires. | |
| """ | |
| # Construction de l'URL avec pagination | |
| url = f"https://opendata.bordeaux-metropole.fr/api/records/1.0/search/?dataset=met_etablissement_rse&q=&rows={rows_per_page}&start={page * rows_per_page}" | |
| response = requests.get(url) | |
| if response.status_code == 200: | |
| data = response.json() | |
| records = data.get("records", []) | |
| return [record["fields"] for record in records], data.get("nhits", 0) | |
| else: | |
| return [], 0 | |
| def display_organisations_engagees(): | |
| """ | |
| Affiche les organisations engagées avec pagination et colonnes réordonnées. | |
| """ | |
| # Pagination | |
| page_number = st.sidebar.number_input("Page number", min_value=0, value=0, step=1) | |
| data, total_hits = get_data(page_number) | |
| if data: | |
| df = pd.DataFrame(data) | |
| # Réordonner les colonnes selon la spécification | |
| cols_order = ["nom_courant_denomination", "tranche_effectif_entreprise", "commune", "hierarchie_naf", "action_rse"] | |
| # Filtre les colonnes pour s'assurer qu'elles existent dans les données | |
| cols_order = [col for col in cols_order if col in df.columns] | |
| df = df[cols_order] | |
| # Affichage des données avec les colonnes réordonnées | |
| st.write(f"Organisations engagées - Page {page_number + 1} sur {((total_hits - 1) // 25) + 1}", df) | |
| else: | |
| st.write("Aucune donnée disponible.") | |
| if __name__ == "__main__": | |
| st.sidebar.title("Navigation") | |
| app_mode = st.sidebar.selectbox("Choisissez l'onglet", ["Organisations engagées", "Autre Onglet"]) | |
| if app_mode == "Organisations engagées": | |
| display_organisations_engagees() | |
| <<<<<<< HEAD | |
| ======= | |
| # Cette structure peut être étendue pour ajouter d'autres onglets à l'application | |
| >>>>>>> cffc976024926b7fc4a558ce209470d5cbd2fb83 | |