1
resposta

[Sugestão] Melhorias no código apresentado.

Como se trata de uma extração semanal, fiz algumas melhorias no código e as apresento aqui como sugestão e contribuição!

from urllib.parse import quote, urljoin  # Use urljoin para combinar URLs de forma segura
import os
from os.path import join
import pandas as pd
from datetime import datetime, timedelta

# Data atual
hoje = datetime.now()

# Calcula o primeiro dia da semana (segunda-feira)
primeiro_dia_semana = hoje - timedelta(days=hoje.weekday())

# Calcula o último dia da semana (domingo)
ultimo_dia_semana = primeiro_dia_semana + timedelta(days=6)

# Formatando as datas
primeiro_dia_semana = primeiro_dia_semana.strftime('%Y-%m-%d')
ultimo_dia_semana = ultimo_dia_semana.strftime('%Y-%m-%d')

city = 'Jaraguá do Sul, SC'
key = 'XXX'

# Codifica o nome da cidade
city_encoded = quote(city)

# Monta a URL usando urljoin
base_url = 'https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/'
URL = urljoin(base_url, f'{city_encoded}/{primeiro_dia_semana}/{ultimo_dia_semana}?unitGroup=metric&include=days&key={key}&contentType=csv')

dados = pd.read_csv(URL)

print(dados)

file_path = f'C:/Dev/000_AB/airflow_alura/semana_{primeiro_dia_semana}/'
# Verifica se o diretório existe antes de criá-lo
if not os.path.exists(file_path):
    os.mkdir(file_path)

dados.to_csv(file_path + 'dados_brutos.csv')
dados[['datetime', 'tempmin', 'temp', 'tempmax']].to_csv(file_path + 'temperaturas.csv')
dados[['datetime', 'description', 'icon']].to_csv(file_path + 'condicoes.csv')
1 resposta

Oii, Alexandre! Como vai?

Obrigada por compartilhar com a comunidade a sua dica de melhorias no código, excelente! Com certeza ajudará a todos da comunidade do fórum. Continue se dedicando aos estudos e caso tenha dúvidas, conte conosco para te ajudar.

Bons estudos!