miguel.moutinho
python dadosabertos automacao

Transformando dados públicos em alertas úteis (com Python)

Dados públicos são acessíveis — mas nem sempre fáceis de usar no dia a dia.

18/03/2026 miguel.moutinho
Transformando dados públicos em alertas úteis (com Python)

Apesar da grande quantidade de informações disponíveis, extrair valor desses dados ainda exige esforço: entender APIs, aplicar filtros, organizar resultados e, principalmente, acompanhar mudanças ao longo do tempo.

Neste post, mostro como criei uma solução simples em Python para coletar dados públicos, aplicar filtros e gerar saídas úteis com potencial para evoluir até um sistema de alertas automatizados.

O problema

Muitas bases públicas oferecem APIs, o que é ótimo. Mas, na prática:

  • os dados são extensos e pouco filtrados
  • parâmetros específicos nem sempre são intuitivos (como códigos internos de órgãos)
  • consultas manuais não escalam
  • não há mecanismos nativos de alerta

Se você quiser, por exemplo, acompanhar novas ocorrências que contenham determinada palavra-chave, precisa repetir consultas constantemente o que rapidamente se torna inviável.

A ideia da solução

A proposta aqui foi construir algo simples, mas útil:

  1. Consumir dados de uma API pública
  2. Aplicar filtros relevantes (por exemplo, palavras-chave)
  3. Organizar os dados
  4. Exportar para CSV
  5. Preparar a base para geração de alertas

A ideia não é criar um sistema complexo, mas sim um ponto de partida reutilizável.

Visão geral da arquitetura

A solução segue um fluxo direto:

API pública → Script Python → Filtros → CSV / Alertas

Esse tipo de arquitetura é leve, fácil de manter e pode ser adaptado para diferentes fontes de dados.

Passo-a-passo

Consumindo a API

O primeiro passo é acessar os dados.

Exemplo básico em Python usando requests:

import requests

url = "https://api.portaldatransparencia.gov.br/api-de-dados/emendas"

headers = {
    "chave-api-dados": "SUA_CHAVE_AQUI"
}

params = {
    "ano": 2024,
    "pagina": 1
}

response = requests.get(BASE_URL, headers=headers, params=params)

if response.status_code != 200:
    raise Exception(f"Erro na API: {response.status_code} - {response.text}")

return response.json()

Tratando e filtrando os dados

Depois de obter os dados, o próximo passo é torná-los úteis.

Um exemplo simples de filtragem por palavra-chave:

palavra_chave = "saúde"

filtrados = [
    item for item in dados
    if palavra_chave.lower() in str(item).lower()
]

Também é possível selecionar apenas os campos relevantes, reduzindo o volume de informação.

Essa etapa é onde começa a aparecer valor real para transformar dados em algo utilizável.

Json Bruto para Dados Filtros

Exportando para CSV

Com os dados organizados, podemos gerar uma saída simples para análise usando Pandas.

import pandas as pd

def salvar_csv(data, funcao):
    """
        Armazena os dados filtrados em arquivo CSV (que pode virar Excel)
    """
    df = pd.DataFrame(data)

    filename = f"emendas_{funcao}.csv"
    df.to_csv(filename, index=False)

    print(f"Arquivo gerado: {filename}")

Evoluindo para alertas

Uma evolução natural dessa solução é transformar consultas em monitoramento contínuo.

Por exemplo:

  • executar o script periodicamente (cron)
  • verificar se existem novos resultados
  • disparar notificações

Um alerta simples poderia ser algo como:

🔔 Nova ocorrência encontrada
Autor: ...
Valor: ...
Descrição: ...

Esse tipo de abordagem transforma dados passivos em informação ativa.

Código completo

O código completo deste exemplo está disponível em:

https://github.com/miguel-br-dl/api-emendas-monitor

Deixe seu comentario

Ainda nao ha comentarios neste artigo.