Previsão do Tempo com Python Usando a API OpenWeather

Você quer aprender como fazer a previsão do tempo com Python? Hoje eu vou te mostrar como fazer isso com a API OpenWeather.

Para fazer a previsão do tempo com Python, use a API do OpenWeather: crie uma conta gratuita, gere uma chave de acesso e faça uma requisição com a biblioteca requests, informando a cidade. A API devolve um JSON com temperatura, umidade e condição do céu, que você lê e exibe direto no seu programa.

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

O que você aprende neste vídeo

Resposta rápida: A aula ensina a consultar a previsão do tempo em Python pela API do OpenWeather, da criação da conta até exibir a temperatura em Celsius. Você aprende a instalar requests, montar a URL com f-string e a chave da API, chamar requests.get(), ler o JSON como dicionário e converter Kelvin em Celsius.

Neste vídeo (25 min):

  • 1:00 - Instalação da biblioteca requests com pip install requests no terminal
  • 2:00 - Criação da conta gratuita no OpenWeather e onde copiar a chave da API
  • 5:00 - Documentação da API e cópia do link de requisição do tempo atual
  • 6:00 - Montagem do link com f-string, trocando os campos entre chaves pelas variáveis
  • 8:00 - Uso do parâmetro q com o nome da cidade no lugar de latitude e longitude
  • 10:00 - import requests e a requisição feita com requests.get()
  • 12:00 - Código de status da resposta e o que o 200 quer dizer
  • 13:00 - Conversão do JSON de resposta em dicionário Python com .json()
  • 17:00 - Extração da descrição do céu na lista weather, no item de índice zero
  • 20:00 - Extração da temperatura na chave temp, dentro do dicionário main
  • 21:00 - Conversão de Kelvin para Celsius subtraindo 273,15 e exibição formatada
  • 23:00 - Parâmetro lang=pt_br para a descrição do tempo vir em português

Trechos do vídeo:

  • O OpenWeather devolve a temperatura em Kelvin: para chegar ao Celsius, subtraia 273,15 do valor recebido.
  • O código 200 na resposta indica requisição bem-sucedida; 404 é endereço não encontrado e 500, erro no servidor.
  • No JSON do OpenWeather, weather é uma lista de um item só, e a descrição do céu fica na chave description dele.
  • O parâmetro lang=pt_br traz a descrição do tempo em português sem alterar a estrutura do JSON devolvido.

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Previsão do tempo com Python

Você sabia que é possível fazer a previsão do tempo com Python? Nós podemos fazer isso utilizando uma API de previsão do tempo chamada OpenWeather!

Essa é uma API para previsão do tempo e ela te permite fazer algumas previsões muito interessantes utilizando o Python, quer aprender como fazer isso?

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

API OpenWeather

Hoje nós vamos utilizar a API de previsão do tempo chamada OpenWeather com o Python para poder fazer a nossa previsão do tempo.

Essa API OpenWeather é a maior API usada ao redor do mundo para fazer a previsão do tempo e previsão do clima!

OBS: Nós vamos utilizar para essa aula o editor de Python PyCharm, mas você pode utilizar outro editor de Python, mas é sempre bom acompanhar com o mesmo para facilitar!

Para esse projeto como estamos trabalhando com API no Python vamos precisar da Biblioteca Requests. Então basta escrever no terminal pip install requests para instalar a biblioteca.

Para poder utilizar a ferramenta OpenWeather é necessário um cadastro no site, mas pode ficar tranquilo que o cadastro é gratuito.

Previsão do Tempo com Python
Site do OpenWeather

Basta clicar me Sign In, depois em Create na Account e criar sua conta. Depois de criar a conta já pode fazer o login no site para que possamos dar continuidade.

Obtendo a chave para utilizar a API
Obtendo a chave para utilizar a API

Logo no canto superior direito você vai ter a opção de My API Keys que é onde vamos clicar para gerar uma chave.

Essa chave é muito importante, pois ela é quem vai permitir a comunicação com o site para obter as informações desejadas.

Clicando em API você vai poder visualizar o que pode fazer com essa API, então pode escolher o que você precisa para o seu projeto.

Opções de coleta de dados
Opções de coleta de dados

Depois de encontrar o que precisa você vai clicar em API Doc, como já deve saber é MUITO IMPORTANTE ler a documentação das ferramentas, pois elas vão te explicar como você vai utilizar cada comando e cada código.

Agora nós vamos utilizar o seguinte código para conseguir obter a descrição e temperatura.

Python
import requests

# link do open_weather: https://openweathermap.org/

API_KEY = "coloque sua API aqui"
cidade = "rio de janeiro"
link = f"https://api.openweathermap.org/data/2.5/weather?q={cidade}&appid={API_KEY}&lang=pt_br"

requisicao = requests.get(link)
requisicao_dic = requisicao.json()
descricao = requisicao_dic['weather'][0]['description']
temperatura = requisicao_dic['main']['temp'] - 273.15
print(descricao, f"{temperatura}ºC")

Aqui você deve lembrar de inserir a sua chave da API e lembrar de não compartilhar com ninguém!

Depois vamos escolher a cidade, lembrando que pode utilizar a latitude e longitude (mas tudo isso está explicado na documentação).

IMPORTANTE: Tudo o que você precisa saber ou consultar pode olhar na documentação da API, pois vai ter tudo o que precisa para buscar as informações necessárias. Inclusive utilizamos a parte de tradução para português para que a descrição final seja em português.

Então trazendo a descrição e temperatura (já convertida para Celsius, pois a temperatura da API é dada em Kelvin) vamos ter o seguinte resultado.

Previsão do Tempo com Python
Resultado final da busca de descrição e temperatura

Aqui temos que tempo está nublado e a temperatura é de 27°C. Agora você já pode inserir essas informações no seu projeto utilizando a API OpenWeather para fazer essa previsão do tempo.

Perguntas frequentes

1. O que é a API OpenWeather?

A OpenWeather é um serviço que fornece dados meteorológicos por meio de uma API: previsão do tempo, temperatura atual, umidade, vento e mais, para qualquer cidade do mundo. Você faz uma requisição HTTP com sua chave de acesso e recebe as informações em formato JSON, prontas para usar em programas Python e outras aplicações.

2. Como pegar dados do tempo de uma cidade com Python?

Monte a URL da API OpenWeather com o nome da cidade e sua chave de acesso, e faça a requisição com requests.get(url). Converta a resposta em dicionário com .json() e acesse os campos, como dados["main"]["temp"] para a temperatura. Assim você tem os dados do tempo em tempo real dentro do seu programa.

3. A API OpenWeather é gratuita?

A OpenWeather tem um plano gratuito que permite um número generoso de requisições por minuto e dá acesso ao tempo atual e à previsão de vários dias, o suficiente para aprender e criar projetos pessoais. Há planos pagos com mais recursos e volume, mas para estudar o gratuito atende bem.

4. Preciso de chave de API para usar o OpenWeather?

Sim. Depois de criar a conta na OpenWeather, você gera uma chave de acesso (API key) única, que autentica suas requisições. Ela vai na URL de cada chamada. Guarde-a em uma variável de ambiente, e não direto no código, para não expor sua chave ao compartilhar o projeto com outras pessoas.

Conclusão da Previsão do Tempo com Python

Nessa aula eu te mostrei como você pode fazer a previsão do tempo com Python utilizando a API OpenWeather que é muito utilizada no mundo todo.

Com ela e com a documentação você vai poder obter diversas informações de tempo e clima para inserir nos seus projetos.

Mas lembre sempre de ler a documentação para que você consiga saber quais as ferramentas e informações pode obter da API desejada!

Hashtag Treinamentos

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


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