Picard Posté(e) 4 avril 2022 Rabastens Partager Posté(e) 4 avril 2022 Bonjour, je n'arrive pas à faire fonctionner le script d'exemple de récupération des données via l'api open data. J'ai bien généré une ip via la page dédiée. J'ai même généré 3 clés différentes: 2 pour les 2 ip différentes selon la machine depuis laquelle j'éxecute le code, et 1 clé redondante pour une des 2 machines j’exécute le code suivant Citation import requests # ~ token = 'MjzvARf5cXiWqzGu0kVYxOFidJWHXXXXX' # ~ token = '1ZF9BavLmXXXXXXXqoHEYxcXMxaIxm3DZTQg' token = 'Lkygr7NQkqGqj6zXXXXXXXXA0oOS5rYT9VHn9yYw' url = "https://www.infoclimat.fr/opendata/?method=get&format=json&stations[]=000HF&start=2022-01-03&end=2022-01-04&token=%s"%token response = requests.get(url) response.json() mais quelque soit la machine et la clé, j'ai l'erreur suivante Citation Traceback (most recent call last): File "/home/bpicard/anaconda3/lib/python3.8/site-packages/requests/models.py", line 910, in json return complexjson.loads(self.text, **kwargs) File "/home/bpicard/anaconda3/lib/python3.8/json/__init__.py", line 357, in loads return _default_decoder.decode(s) File "/home/bpicard/anaconda3/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/home/bpicard/anaconda3/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "./get_infoclimat.py", line 29, in <module> response.json() File "/home/bpicard/anaconda3/lib/python3.8/site-packages/requests/models.py", line 917, in json raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) requests.exceptions.JSONDecodeError: [Errno Expecting value] Wrong ip address: 0 et effectivement, l'objet response contient Citation In [2]: response Out[2]: <Response [200]> In [3]: response.content Out[3]: b'Wrong ip address' Question subsidiaire: je n'arrive pas à supprimer les clés via la page dédiée... je clique sur la poubelle, un pop-up d'avertissement apparaît (pour confirmer) et pourtant les 3 clés sont toujours là.... J'ai vu que certains d'entre vous ont réussi, je dois me planter qq part ^ ^. une idée: @Marc09, @Fred59_, @libertykite ? Lien à poster Partager sur d’autres sites More sharing options...
libertykite Posté(e) 7 avril 2022 Partager Posté(e) 7 avril 2022 Salut @Picard, J'ai pas vu comme ça au premier abord où ton code est faux. Si ça peut aider, voici ma fonction en php qui a fonctionne de mon côté (A part le problème de la valeur vent_rafale qui est souvent null mais j'ai déjà signalé ça à l'équipe d'infoclimat) function importDatas() { $date = new \DateTime('now'); $date->setTimezone(new \DateTimeZone('Europe/Paris')); $dateString = $date->format('y-m-d'); //2022-02-26 $apiKey = $_ENV['API_INFOCLIMAT']; $url = 'https://www.infoclimat.fr/opendata/?method=get&format=json&stations[]=07020&stations[]=ME031&stations[]=000TZ&stations[]=ME105&stations[]=000IB&stations[]=000EC&stations[]=000S2&stations[]=000SR&stations[]=ME052&stations[]=000YJ&stations[]=000BX&stations[]=07117&stations[]=00098&stations[]=000D8&stations[]=000NQ&stations[]=07207&stations[]=000CO&stations[]=000O3&stations[]=000RG&stations[]=000AS&stations[]=000TQ&stations[]=ME017&stations[]=000GL&stations[]=000ST&stations[]=07314&stations[]=000LV&stations[]=000DM&stations[]=000DZ&stations[]=ME120&stations[]=00063&stations[]=000EV&stations[]=STATIC0003&stations[]=000MN&stations[]=000F3&stations[]=00010&stations[]=000F1&stations[]=07650&stations[]=000C4&stations[]=000BL&stations[]=000Y9&stations[]=07661&stations[]=000WB&stations[]=000EF&stations[]=07690&stations[]=000GD&stations[]=ME018&stations[]=ME057&stations[]=07761&stations[]=000SO&stations[]=000S9&stations[]=000UA&start=' . $dateString . '&end=' . $dateString . '&token=' . $apiKey; try { $response = $this->client->request('GET', $url); } catch (\Exception $e) { echo 'Problème de connection au service Infoclimmat.fr' . PHP_EOL; echo 'ERREUR => ' . $e->getMessage(); return; } try { $body = $response->getBody(); } catch (\Exception $e) { echo 'ERREUR => ' . $e->getMessage(); return; } $remainingBytes = $body->getContents(); $datas = json_decode($remainingBytes); return $datas; } Lien à poster Partager sur d’autres sites More sharing options...
Picard Posté(e) 8 avril 2022 Rabastens Auteur Partager Posté(e) 8 avril 2022 nooooooon mais quel boulet je mettais l'adresse de mon routeur, erreur de newbie ... désolé... maintenant, ça marche parfaitement, merci pour le support @libertykite d'avoir répondu, ça m'a obligé à regarder tout ça de plus prés. Lien à poster Partager sur d’autres sites More sharing options...
Picard Posté(e) 8 avril 2022 Rabastens Auteur Partager Posté(e) 8 avril 2022 est-ce qu'il possible de modifier le titre de ce topic en [RESOLU] ? 1 Lien à poster Partager sur d’autres sites More sharing options...
metre3 Posté(e) 8 avril 2022 Colombier (42) , Alt. 1030 m Partager Posté(e) 8 avril 2022 il y a 53 minutes, Picard a dit : est-ce qu'il possible de modifier le titre de ce topic en [RESOLU] ? Oui tu clic long sur le titre du topic (tu en es le créateur) et tu accèdes à l'éditeur Lien à poster Partager sur d’autres sites More sharing options...
Thundik81 Posté(e) 8 avril 2022 Ici dans le Cloud Partager Posté(e) 8 avril 2022 Il y a 3 heures, metre3 a dit : Oui tu clic long sur le titre du topic (tu en es le créateur) et tu accèdes à l'éditeur Ou : https://forums.infoclimat.fr/f/topic/57290-api-open-data-wrong-ip-adress/?do=edit Lien à poster Partager sur d’autres sites More sharing options...
axelcroce Posté(e) 17 janvier 2024 Partager Posté(e) 17 janvier 2024 Bonjour, Je rencontre un problème similaire, lorsque j'essaie de télécharger le fichier depuis l'interface avec le token que j'ai créé à partir de mon adresse IP, ça fonctionne alors que quand j'essaie de collecter les fichiers en Python, mes fichiers contiennent juste "Wrong IP Address". J'ai pensé que le problème pouvait venir de l'adresse IPv6 donc j'ai essayé de forcer l'utilisation d'IPv4 mais ça ne résoud pas le problème. Je fournis pourtant bien l'IP de mon ordinateur et non celle de mon routeur. @Picard Est-ce que tu pourrais m'en dire plus sur la manière dont tu as résolu le problème ? Merci pour votre aide ! Axel import argparse import json import os import sys from datetime import date, datetime, timedelta import requests from ofunctions.network import set_ip_version if __name__ == "__main__": # API URL api_url = "https://www.infoclimat.fr/opendata/?method=get&format=csv&stations[]=ME099&stations[]=000BV" # Token (replace with your actual token) token = "xxxxxxxx" # Start and end date start_date = datetime.strptime("2023-01-01", "%Y-%m-%d") end_date = datetime.strptime("2024-01-01", "%Y-%m-%d") # Delta for one week one_week_delta = timedelta(days=7) # Loop through date windows while start_date <= end_date: # Calculate the end date for the current week current_end_date = start_date + one_week_delta - timedelta(days=1) # Format the dates as strings start_date_str = start_date.strftime("%Y-%m-%d") current_end_date_str = current_end_date.strftime("%Y-%m-%d") local_filename = f"weather_data_{start_date_str}_{current_end_date_str}.csv" # Construct the API request URL request_url = f"{api_url}&start={start_date_str}&end={current_end_date_str}&token={token_2}" set_ip_version(4) # Make the API request response = requests.get(request_url) # Process the response (you can customize this part based on your needs) if response.status_code == 200: with open(local_filename, "wb") as file: file.write(response.content) print(f"File downloaded successfully as {local_filename}") # Process the response content here, e.g., save it to a file or analyze the data else: print(f"Error collecting data. Status code: {response.status_code}") print(response.text) # Print the response content for debugging # Increment the start date for the next iteration start_date += one_week_delta Lien à poster Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant