IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Erreur JSON DECODE ERROR / API d'un site de pari


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2020
    Messages : 3
    Par défaut Erreur JSON DECODE ERROR / API d'un site de pari
    Bonjour à la communauté,

    J'ai un petit problème sur du Python 3

    Je souhaite récupérer des informations (sports, ligues, matchs,...) au travers de l'API d'un site de pari en ligne. J'ai une erreur qui survient quand j'exécute le code Python que je n'avais jamais eu. Je n'arrive pas à trouver la solution à mon problème. Pourriez-vous m'aider s'il vous plaît ?

    J'ai pour l'instant réussir à récupérer les sports et ligues proposés sur le site en question. J'ai fait des inserts de ces infos dans 2 tables
    => SPORTS pour les différentes sports proposés / Champs : sportId (PK), sportName
    => LEAGUES pour les différentes ligues de chaque sport / Champs : leagueId (PK), leagueName, sportId (FK vers SPORTS)
    Je voudrais maintenant récupérer les informations concernant les rencontres sur chaque ligue

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    def get_request(url_request):   
        url='*****' + url_request
        b64str = base64.b64encode("{}:{}".format(username,password).encode('utf-8'))
        headers = {'Content-length' : '0',
                   'Content-type' : 'application/json',
                   'Authorization' : "Basic " + b64str.decode('utf-8')
                   }
     
        req = ulib.Request(url, headers=headers)
     
        responseData = ulib.urlopen(req).read()
        response = json.loads(responseData.decode('utf-8'))
        return response
     
    # Je viens me connecter à une base SQL SERVER
    conn = pyodbc.connect('Driver={SQL Server};'
                          'Server=*****;'
                          'Database=*****;'
                          'Trusted_Connection=yes;')
    cursor = conn.cursor()
     
    # Je viens récupérer les clés primaires de chaque sport et chaque ligue qui vont me permettent ensuite de remonter les informations sur les rencontres. Ces informations vont être copiées dans l'URL de l'API.
    query = 'SELECT sportId, leagueId FROM LEAGUES'
    df = pd.read_sql(query, conn)                  
     
    # Suppression des lignes de la table EVENTS avant insertion. Cette table contiendra les informations sur les rencontres
    => Champs : eventId (PK), homeTeam, awayTeam, eventDate, leagueId (PK vers LEAGUES)
    cursor.execute('TRUNCATE TABLE EVENTS')
     
     
    for index, row in df.iterrows() :
        events={}
        for i in get_request('/v1/fixtures?sportid='+str(row['sportId'])+'&leagueids='+str(row['leagueId']))['league'] :
            events['tmp']=i['events']
        events_final=pd.DataFrame(events['tmp'])
     
        for index2, row2 in events_final.iterrows() :
            request='INSERT INTO EVENTS_PINN(eventId, homeTeam, awayTeam, eventDate, leagueId) VALUES 
            ('+str(row2['id'])+",'"+row2['home']+"','"+row2['away']+"','"+row2['starts']+"',"+str(row['leagueId'])+')'
            cursor.execute(request)
            conn.commit()
    conn.close()

    Erreur renvoyée :
    JSONDecodeError: Expecting value: line 1 column 1 (char 0)

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Avant de lire le contenu avec json.loads(), enregistre cette page dans un fichier. Tu pourras ainsi voir ce qui n'est pas correct dans les données.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Le format JSON, c'est juste du texte: afficher responseData avec "print" devrait vous donner des pistes.
    Probable que la chaine de caractères soit juste vide (ce que vous cherchez n'existe pas).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/05/2016, 10h48
  2. [wsad/erreur import war]Error importing module file
    Par valal dans le forum Websphere
    Réponses: 1
    Dernier message: 05/09/2006, 15h01
  3. HelpWorkShop, erreur : hhc 6003 error the file ...
    Par kivoch dans le forum Outils
    Réponses: 2
    Dernier message: 16/03/2006, 12h31
  4. Message d'erreur ADODB.Field error '80020009'
    Par tonyC dans le forum ASP
    Réponses: 2
    Dernier message: 23/07/2005, 16h00
  5. erreur ora-12801 : error signaled in parallel query server
    Par dngaya dans le forum Administration
    Réponses: 5
    Dernier message: 15/04/2004, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo