Blog

Postado em em 29 de julho de 2021

Atualizar Dados no Python em Intervalo de Tempo

Quer aprender como atualizar dados no Python em intervalo de tempo para verificar a cotação do dólar, bitcoin e euro a todo instante?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber a planilha que usamos na aula no seu e-mail, preencha:

Resumo

Nessa aula vamos te mostrar como obter informações atualizadas a cada período dentro do Python!

Para isso vamos utilizar as estruturas de repetição While e For, juntamente com o time.sleep() para poder informar o tempo entre uma execução e outra.

Dessa forma vamos conseguir estipular um período para que o código execute e busque as cotações do dólar, euro e bitcoin!

Esse é um processo que vai ser automático, então vamos conseguir repetir esse processo diversas vezes, colocando um período de tempo entre cada execução.

Assim você consegue personalizar o tempo que vai querer entre uma atualização e outra das suas moedas!

Atualizar Informações no Python por Tempo

Esse tempo entre as execuções pode ser de minuto em minuto, a cada 5 minutos, 10 minutos… Você vai escolher o tempo de acordo com a sua necessidade.

OBS: Para esse exemplo nós vamos utilizar o Jupyter (Pacote Anaconda), mas nos download já vamos deixar os arquivos caso você esteja utilizando outro editor de Python!

Antes de iniciar com o código é bom informar que nós vamos utilizar a biblioteca pandas, a biblioteca requests e a biblioteca time (que já vem instalada no Jupyter) para que possamos rodar esse código.

Esse é um código onde vamos utilizar uma API de cotação de moedas, caso queira mais algum detalhe sobre essa API basta clicar aqui para ser direcionado ao site do Awesomeapi.

Lá você vai poder verificar como os códigos funcionam e vai conseguir obter a cotação de mais de 150 moedas!

import requests
import pandas as pd
from datetime import datetime
import time

while True:
    requisicao = requests.get("https://economia.awesomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL")

    requisicao_dic = requisicao.json()
    cotacao_dolar = requisicao_dic["USDBRL"]["bid"]
    cotacao_euro = requisicao_dic["EURBRL"]["bid"]
    cotacao_btc = requisicao_dic["BTCBRL"]["bid"]

    tabela = pd.read_excel("Cotações.xlsx")
    tabela.loc[0, "Cotação"] = float(cotacao_dolar)
    tabela.loc[1, "Cotação"] = float(cotacao_euro)
    tabela.loc[2, "Cotação"] = float(cotacao_btc) * 1000
    tabela.loc[0, "Data Última Atualização"] = datetime.now()

    tabela.to_excel("Cotações.xlsx", index=False)
    print(f"Cotação Atualizada. {datetime.now()}")
    time.sleep(60)

Esse é o código para obter a cotação do dólar, euro e bitcoin e colocar essas informações dentro de um arquivo em Excel.

Depois disso vamos atualizar esse arquivo de Excel com a data em que essas informações foram obtidas, assim você vai saber qual foi a última vez que foi atualizado.

A ideia desse código é obter essas 3 informações e já alterar seu arquivo de Excel de forma automática.

No entanto se você quiser com que ele fique repetindo a cada minuto basta inserir a estrutura de repetição While (nosso While True: no código).

E depois temos que colocar o código time.sleep(tempo em segundos), dessa forma vamos criar um loop infinito a cada período de tempo para rodar esse código.

Isso quer dizer que se colocarmos time.sleep(60) o nosso código vai rodar a cada 1 minuto (60 segundos) e só vai parar de rodar se você parar ou fechar o programa.

Agora caso você queira que o programa fique rodando a cada período de tempo, mas quer determinar quantas vezes ele vai rodar ao invés de deixá-lo em um loop infinito basta trocar o while pela estrutura de repetição For.

Assim vai conseguir determinar quantas vezes o código será executado a cada período.

IMPORTANTE: É muito importante que antes de você colocar qualquer uma das Estruturas de Repetições no Python que você se certifique de que o código está funcionando corretamente. É importante para que não crie um loop infinito de algo que está com algum problema e gere um erro na sua execução podendo chegar a travar.

import requests
import pandas as pd
from datetime import datetime

while True:
    requisicao = requests.get("https://economia.awesomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL")

    requisicao_dic = requisicao.json()
    cotacao_dolar = requisicao_dic["USDBRL"]["bid"]
    cotacao_euro = requisicao_dic["EURBRL"]["bid"]
    cotacao_btc = requisicao_dic["BTCBRL"]["bid"]

    tabela = pd.read_excel("Cotações.xlsx")
    tabela.loc[0, "Cotação"] = float(cotacao_dolar)
    tabela.loc[1, "Cotação"] = float(cotacao_euro)
    tabela.loc[2, "Cotação"] = float(cotacao_btc) * 1000
    tabela.loc[0, "Data Última Atualização"] = datetime.now()

    tabela.to_excel("Cotações.xlsx", index=False)
    print(f"Cotação Atualizada. {datetime.now()}")
    time.sleep(60)

Aqui temos o código rodando e mostrando as atualizações que foram feitas e abaixo temos o arquivo em Excel já com as informações atualizadas.

Arquivo em Excel com a última atualização
Arquivo em Excel com a última atualização

Conclusão de Atualizar Dados no Python

Eu te ensinei como atualizar dados no Python escolhendo um período determinado. Assim você consegue definir o tempo que vai querer suas atualizações para se adequarem as suas aplicações.

Então nesse exemplo utilizamos uma API para obter a cotação de algumas moedas. Dessa forma vamos ter um arquivo em Excel sendo atualizado a cada 1 minuto (ou o tempo que preferir).

Em seguida teremos também o resultado no próprio editor de Python para saber quais foram os períodos de atualização do código.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador