Pour que cela fonctionne, vous devez copier et coller votre clé API dans ce code.
Il est généralement déconseillé de montrer votre clé API dans le code, surtout si vous partagez ce code, car quelqu'un d'autre pourrait l'utiliser à vos dépens. On utilisera des variables d'environnement pour la gérer de manière plus sécurisée (étape à suivre)
# Charger les variables d'environnement depuis le fichier .env
5
load_dotenv()
6
7
# Récupérer la clé API à partir des variables d'environnement
8
api_key=os.getenv('api_OPENWEATHER')
9
10
print(api_key)
import os
from dotenv import load_dotenv
# Charger les variables d'environnement depuis le fichier .env
load_dotenv()
# Récupérer la clé API à partir des variables d'environnement
api_key= os.getenv('api_OPENWEATHER')
print(api_key)
print(f"La température à Vittel est de {temperature} degrés Celsius.")
35
else:
36
print("Erreur lors de la requête.")
37
import requests
# Clé d'API OpenWeatherMap
import os
from dotenv import load_dotenv
# Charger les variables d'environnement depuis le fichier .env
load_dotenv()
# Récupérer la clé API à partir des variables d'environnement
api_key= os.getenv('api_OPENWEATHER')
# Assurez-vous que votre clé API a été chargée avec succès
if api_key is None:
raise ValueError("La clé API n'a pas été trouvée dans les variables d'environnement.")
# URL de l'API OpenWeatherMap
url = "http://api.openweathermap.org/data/2.5/weather"
# Paramètres de la requête au format JSON
params = {
"q": "Vittel,fr",
"appid": api_key,
"units": "metric"
}
# Envoi de la requête
response = requests.get(url, params=params)
# Vérification de la réponse
if response.status_code == 200:
# Extraction de la température
data = response.json()
temperature = data["main"]["temp"]
print(f"La température à Vittel est de {temperature} degrés Celsius.")
else:
print("Erreur lors de la requête.")
On ajoute des tests pour vérifier que tout se passe bien, et on intègre dans la requête des paramètres afin de clarifier le corps de la requête avec l'argument params qui est au format JSON[1] comme le sera la réponse du serveur.
# ..............code pour définir la clé API
city = 'Vittel'
country_code = 'FR'
# Construction de l'URL de l'API
url = f'http://api.openweathermap.org/data/2.5/weather?q={city},{country_code}&appid={api_key}&units=metric'
# Faire la requête à l'API
response = requests.get(url)
# ................code après
Remarque :
C'est une autre façon en manipulant les chaînes de caractères et le contenu des variables dans les expressions avec les {}.
On préfèrera nettement la Solution 1 et les paramètres en JSON.
Code du module avec une fonction lit_API avec un argument Ville⚓
La procédure exécute la requête, puis affiche de manière sommaire la ville, elle pourrait retourner la température, puis on pourrait gérer l'affichage plus loin.
#print(data) # Ou vous pouvez choisir d'imprimer des données spécifiques
41
42
# Exemple : imprimer la température
43
temperature=data["main"]["temp"]
44
print(f"La température à {ville} est de {temperature} °C")
45
46
exceptrequests.exceptions.HTTPErrorashttp_err:
47
# Gérer les erreurs HTTP que pourrait retourner OpenWeatherMap
48
print(f"Erreur HTTP: {http_err}")
49
exceptrequests.exceptions.RequestExceptionase:
50
# Gérer les autres erreurs potentielles (réseau, etc.)
51
print(f"Erreur de requête: {e}")
import os
import requests
from dotenv import load_dotenv
# Charger les variables d'environnement depuis le fichier .env
load_dotenv()
# Récupérer la clé API à partir des variables d'environnement
API_KEY = os.getenv('api_OPENWEATHER')
def lit_API(ville):
"""
Cette procédure interroge l'API OpenWeather pour obtenir des données météorologiques pour une ville donnée.
Args:
ville: Nom de la ville pour laquelle les données météorologiques sont demandées.
"""
# URL de base de l'API OpenWeather
base_url = "https://api.openweathermap.org/data/2.5/weather"
# Paramètres pour la requête API
params = {
'q': ville,
'appid': API_KEY,
'units': 'metric' # ou 'imperial' pour Fahrenheit
}
try:
# Effectuer la requête
response = requests.get(base_url, params=params)
# Vérifier le code de statut de la réponse
response.raise_for_status()
# Convertir la réponse en JSON
data = response.json()
# Imprimer les données récupérées
print(f"Données météo pour {ville} :")
#print(data) # Ou vous pouvez choisir d'imprimer des données spécifiques
# Exemple : imprimer la température
temperature = data["main"]["temp"]
print(f"La température à {ville} est de {temperature} °C")
except requests.exceptions.HTTPError as http_err:
# Gérer les erreurs HTTP que pourrait retourner OpenWeatherMap
print(f"Erreur HTTP: {http_err}")
except requests.exceptions.RequestException as e:
# Gérer les autres erreurs potentielles (réseau, etc.)
print(f"Erreur de requête: {e}")
Pré-requis⚓
Vous avez votre clé API
Le module request est installé.
Variables - Structure conditionnelle - Fonctions - Modules
Attention : Visualisation Clé API⚓
Pour que cela fonctionne, vous devez copier et coller votre clé API dans ce code.
Il est généralement déconseillé de montrer votre clé API dans le code, surtout si vous partagez ce code, car quelqu'un d'autre pourrait l'utiliser à vos dépens. On utilisera des variables d'environnement pour la gérer de manière plus sécurisée (étape à suivre)
Installation du module python⚓
Code⚓
# Charger les variables d'environnement depuis le fichier .env
load_dotenv()
# Récupérer la clé API à partir des variables d'environnement
Réglementaire : Fichier .env⚓
Le fichier .env doit contenir la clé : api_OPENWEATHER=votre_key_api
On peut bien sûr ajouter des variables avec les mots de passe WIFI, etc que l'on ne veut pas partager par erreur.
Une fois testé, on peut modifier le code selon 2 solutions présentées ci-dessous
Code⚓
# Clé d'API OpenWeatherMap
# Charger les variables d'environnement depuis le fichier .env
load_dotenv()
# Récupérer la clé API à partir des variables d'environnement
# Assurez-vous que votre clé API a été chargée avec succès
# URL de l'API OpenWeatherMap
# Paramètres de la requête au format JSON
# Envoi de la requête
# Vérification de la réponse
# Extraction de la température
else:
On ajoute des tests pour vérifier que tout se passe bien, et on intègre dans la requête des paramètres afin de clarifier le corps de la requête avec l'argument params qui est au format JSON[1] comme le sera la réponse du serveur.
Code⚓
# ..............code pour définir la clé API
# Construction de l'URL de l'API
# Faire la requête à l'API
# ................code après
Remarque :
C'est une autre façon en manipulant les chaînes de caractères et le contenu des variables dans les expressions avec les {}.
On préfèrera nettement la Solution 1 et les paramètres en JSON.
Code du module avec une fonction
lit_API
avec un argumentVille
⚓La procédure exécute la requête, puis affiche de manière sommaire la ville, elle pourrait retourner la température, puis on pourrait gérer l'affichage plus loin.
act_004_API_OpenWeather_TEST_03.py
Procédure⚓
# Charger les variables d'environnement depuis le fichier .env
load_dotenv()
# Récupérer la clé API à partir des variables d'environnement
"""
Cette procédure interroge l'API OpenWeather pour obtenir des données météorologiques pour une ville donnée.
Args:
ville: Nom de la ville pour laquelle les données météorologiques sont demandées.
"""
# URL de base de l'API OpenWeather
# Paramètres pour la requête API
try:
# Effectuer la requête
# Vérifier le code de statut de la réponse
# Convertir la réponse en JSON
# Imprimer les données récupérées
#print(data) # Ou vous pouvez choisir d'imprimer des données spécifiques
# Exemple : imprimer la température
# Gérer les erreurs HTTP que pourrait retourner OpenWeatherMap
# Gérer les autres erreurs potentielles (réseau, etc.)
Appel⚓
# Utilisation de la procédure