Classement Formule 1 Automatisé Python

Résolu
ThomasKop -  
 Diablo76 -

Bonjour,

Je m'appelle Thomas et je débute en python.
J'ai essayé après de nombreuses recherches de créer un classement automatisé de Formule 1 en python. Mais malheureusement, il ne marche pas, après de nombreuses recherches je n'ai toujours pas trouvé la solution, je me tourne donc vers des forums python ou j'espère y trouver mes réponses

Voilà le code : 

import urllib.request, json

def get_classement():

with urllib.request.urlopen("https://ergast.com/api/f1/2022/driverStandings.json") as url:

data = json.loads(url.read().decode())

fichier = open("classement.txt", "w")

for driver in data["MRData"]["StandingsTable"]["StandingsLists"][0]["DriverStandings"]:

nom_complet = driver["Driver"]["givenName"]+" "+driver["Driver"]["familyName"]

classement = driver["position"]

points = driver["points"]

fichier.write(classement+" - "+nom_complet.upper()+" - "+points+"PTS"+"\n")

fichier.close()

En espérant que vous pouvez m'aider,

Merci 

2 réponses

  1. Diablo
     

    Salut,

    Sympa cette adresse :-)

    je n'aurais pas choisi le module urllib mais plutôt requests

    Voilà ce que ça donne, j'ai seulement supprimé la partie enregistrement dans un fichier.

    import requests
    
    def get_classement():
    
        req = requests.get("https://ergast.com/api/f1/2022/driverStandings.json") 
        data = req.json()
    
        for driver in data["MRData"]["StandingsTable"]["StandingsLists"][0]["DriverStandings"]:
                nom_complet = driver["Driver"]["givenName"]+" "+driver["Driver"]["familyName"]
                classement = driver["position"]
                points = driver["points"]
                print(classement+" - "+nom_complet.upper()+" - "+points+"PTS")
    
    
    get_classement()

    Et la sortie :

    1 - MAX VERSTAPPEN - 416PTS
    2 - SERGIO PÉREZ - 280PTS
    3 - CHARLES LECLERC - 275PTS
    4 - GEORGE RUSSELL - 231PTS
    5 - LEWIS HAMILTON - 216PTS
    6 - CARLOS SAINZ - 212PTS
    7 - LANDO NORRIS - 111PTS
    8 - ESTEBAN OCON - 82PTS
    9 - FERNANDO ALONSO - 71PTS
    10 - VALTTERI BOTTAS - 47PTS
    11 - SEBASTIAN VETTEL - 36PTS
    12 - DANIEL RICCIARDO - 35PTS
    13 - KEVIN MAGNUSSEN - 24PTS
    14 - PIERRE GASLY - 23PTS
    15 - LANCE STROLL - 13PTS
    16 - MICK SCHUMACHER - 12PTS
    17 - YUKI TSUNODA - 12PTS
    18 - GUANYU ZHOU - 6PTS
    19 - ALEXANDER ALBON - 4PTS
    20 - NICHOLAS LATIFI - 2PTS
    21 - NYCK DE VRIES - 2PTS
    22 - NICO HÜLKENBERG - 0PTS
    1
    1. ThomasKop
       

      Merci Beaucoup !

      0
    2. ThomasKop
       

      Ma dernière question serait de savoir comment insérer se programme dans un site web html.

      Merci,

      Thomas

      0
      1. Diablo76 > ThomasKop
         

        Là du coup on est très loin de ta question initiale !!!!

        Javascript sait très bien le faire, récupérer un fichier json et l'injecter dynamiquement dans une page web

        Pose la question sur le forum Javascript.

        0