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.
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:
- Consumir dados de uma API pública
- Aplicar filtros relevantes (por exemplo, palavras-chave)
- Organizar os dados
- Exportar para CSV
- 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.

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.

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:
Comentarios
Voltar para artigosAinda nao ha comentarios neste artigo.
Deixe seu comentario