Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Agreger des données JSON
Agréger des données pour en tirer des statistiques, c'est ce que fait un tableau de bord d'e-commerce : chiffre d'affaires total, produit star, nombre de transactions. C'est aussi le genre de tâche qu'on te demandera en entretien pour tester ta capacité à combiner boucles, dictionnaires et fonctions built-in.
Écris une fonction stats_ventes(json_str) qui reçoit une chaîne JSON contenant une liste de ventes (champs produit, quantite, prix). Retourne un dictionnaire avec : total_revenus : somme de quantite * prix produit_top : le produit avec le plus grand chiffre d'affaires nb_ventes : nombre total de ventes
Si la liste est vide, retourne total_revenus=0, produit_top=None, nb_ventes=0.
data = '[{"produit": "PC", "quantite": 1, "prix": 999.0}]'
result = stats_ventes(data)
assert result['produit_top'] == 'PC'
assert result['nb_ventes'] == 1
+ 0 tests cachés
Indices (3 disponibles)
Solution officielle
import json
def stats_ventes(json_str):
ventes = json.loads(json_str)
if not ventes:
return {'total_revenus': 0, 'produit_top': None, 'nb_ventes': 0}
revenus = [(v['produit'], v['quantite'] * v['prix']) for v in ventes]
total = sum(r for _, r in revenus)
top = max(revenus, key=lambda x: x[1])[0]
return {'total_revenus': total, 'produit_top': top, 'nb_ventes': len(ventes)}