dash-whales-spaces / utils /scrap_cmc_global_metrics.py
mohcineelharras's picture
more graphs
a45d429
# Import necessary libraries
import requests
import pandas as pd
import logging
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
url_cmc = os.getenv("URL_CMC")
api_key_cmc = os.getenv("API_KEY_CMC")
log_folder = os.getenv("LOG_FOLDER")
# Ensure the log folder exists
os.makedirs(log_folder, exist_ok=True)
log_file = os.path.join(log_folder, "cmc_global_metrics.log")
logging.basicConfig(filename=log_file, level=logging.INFO, format="%(asctime)s [%(levelname)s] - %(message)s")
# Fetch global metrics
def fetch_global_metrics():
endpoint = "v1/global-metrics/quotes/latest"
headers = {'Accepts': 'application/json', 'X-CMC_PRO_API_KEY': api_key_cmc}
try:
response = requests.get(f"{url_cmc}/{endpoint}", headers=headers)
response.raise_for_status() # Raise an exception for HTTP errors
data = response.json()
df = pd.json_normalize(data['data'])
df.to_csv('output/global_metrics.csv', index=False)
logging.info("Global metrics data fetched successfully.")
except requests.exceptions.RequestException as e:
logging.error(f"Error fetching global metrics data: {e}")
# Run the function
if __name__ == "__main__":
fetch_global_metrics()