• [^] # Re: Génération en JS

    Posté par (site web personnel) . En réponse au lien Des exemples de programmes écrits grâce à chat-GPT. Évalué à 2. Dernière modification le 31 mars 2023 à 17:54.

    Je te mets un exemple de ce que je viens de construire :

    Peux-tu me faire un json avec les 20 plus grandes villes de france, leur population, leur superficie et leur maire

    Bien sûr, voici un exemple de JSON avec les 20 plus grandes villes de France, leur population, leur superficie et leur maire :

    {
    "villes": [
    {
    "nom": "Paris",
    "population": 2190327,
    "superficie": 105.4,
    "maire": "Anne Hidalgo"
    },
    {
    "nom": "Marseille",
    "population": 861635,
    "superficie": 240.6,
    "maire": "Michèle Rubirola"
    },
    {
    "nom": "Lyon",
    "population": 515695,
    "superficie": 47.9,
    "maire": "Grégory Doucet"
    },
    {
    "nom": "Toulouse",
    "population": 479553,
    "superficie": 118.3,
    "maire": "Jean-Luc Moudenc"
    },
    {
    "nom": "Nice",
    "population": 342295,
    "superficie": 71.9,
    "maire": "Christian Estrosi"
    },
    {
    "nom": "Nantes",
    "population": 313288,
    "superficie": 65.19,
    "maire": "Johanna Rolland"
    },
    {
    "nom": "Strasbourg",
    "population": 280966,
    "superficie": 78.26,
    "maire": "Jeanne Barseghian"
    },
    {
    "nom": "Montpellier",
    "population": 280300,
    "superficie": 56.88,
    "maire": "Michael Delafosse"
    },
    {
    "nom": "Bordeaux",
    "population": 257804,
    "superficie": 49.36,
    "maire": "Pierre Hurmic"
    },
    {
    "nom": "Lille",
    "population": 232787,
    "superficie": 34.83,
    "maire": "Martine Aubry"
    },
    {
    "nom": "Rennes",
    "population": 216815,
    "superficie": 50.39,
    "maire": "Nathalie Appéré"
    },
    {
    "nom": "Reims",
    "population": 182592,
    "superficie": 46.9,
    "maire": "Arnaud Robinet"
    },
    {
    "nom": "Le Havre",
    "population": 170352,
    "superficie": 46.95,
    "maire": "Édouard Philippe"
    },
    {
    "nom": "Saint-Étienne",
    "population": 170049,
    "superficie": 79.97,
    "maire": "Gaël Perdriau"
    },
    {
    "nom": "Toulon",
    "population": 166527,
    "superficie": 42.84,
    "maire": "Hubert Falco"
    },
    {
    "nom": "Grenoble",
    "population": 161792,
    "superficie": 18.13,
    "maire": "Éric Piolle"
    }
    }

    Peux tu me faire une fonction qui ordonne ce JSON par superficie ?

    import json
    def trier_villes_par_superficie(json_str):
    # Charger le JSON
    data = json.loads(json_str)
    # Trier la liste des villes par superficie croissante
    villes_triees = sorted(data["villes"], key=lambda ville: ville["superficie"])
    # Construire un nouveau JSON trié
    data_trie = {"villes": villes_triees}
    json_trie = json.dumps(data_trie, indent=2)
    return json_trie

    Explications :

    La fonction trier_villes_par_superficie prend en paramètre une chaîne de caractères représentant un JSON contenant les données des villes.
    Elle commence par charger le JSON en utilisant la fonction json.loads.
    Ensuite, elle trie la liste des villes en utilisant la fonction sorted en spécifiant la clé de tri à utiliser (lambda ville: ville["superficie"] signifie que l'on trie par la valeur de la clé "superficie" de chaque ville).
    Elle construit un nouveau JSON trié à partir de la liste triée de villes en utilisant la fonction json.dumps.
    Enfin, elle retourne la chaîne de caractères représentant le JSON trié.

    Voici un exemple d'utilisation de la fonction :

    etc. etc.