Ooi, Leandro!
Tô aqui para ajudar você! :)
Esse erro ocorre porque o Python está tentando formatar uma string como se fosse uma data, mas na verdade essa string não é uma data.
No seu código, você usa data_interval_end.strftime("%Y-%m-%d")
para formatar a data. Isso normalmente funcionaria se data_interval_end
fosse um objeto de data. No entanto, parece que ele está sendo tratado como uma string comum, o que causa o erro.
Vou deixar abaixo algumas dicas para resolver o problema:
→ Verificar o tipo de dado:
Antes de mais nada, vamos verificar o que realmente é data_interval_end
. Adicione esta linha de código antes do erro para ver o tipo de dado:
print(type(data_interval_end))
→ Converter para data:
Se o resultado for uma string, você precisará converter data_interval_end
em um objeto de data antes de formatá-lo. Veja um exemplo de como você pode fazer isso:
from datetime import datetime
# Supondo que 'data_interval_end' seja uma string como "2024-01-01"
data_formatada = datetime.strptime(data_interval_end, "%Y-%m-%d")
data_em_string = data_formatada.strftime("%Y-%m-%d")
→ Uso correto das macros do Airflow:
Verifique se você está usando as macros do Airflow corretamente para que data_interval_end
seja reconhecido como uma data. Por exemplo:
tarefa_extrai_dados = PythonOperator(
task_id='extrai_dados',
python_callable=extrai_dados,
op_kwargs={'data_inicio': '{{ ds }}', 'data_fim': '{{ tomorrow_ds }}'}
)
Espero ter ajudado!
Abraço! :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!