Este projeto fornece uma classe Python para interagir com a API de Dados Abertos do TSE (Tribunal Superior Eleitoral). Ele permite buscar datasets, grupos, tags, e realizar download de arquivos compactados (ZIP) contendo dados em formato CSV para análise posterior.
-
Interação com a API do TSE:
- Listagem de datasets, grupos e tags.
- Busca por URLs de arquivos compactados (ZIP) em datasets específicos.
-
Gerenciamento de Dados:
- Download de arquivos ZIP e extração de arquivos CSV.
- Leitura de arquivos CSV para objetos
pandas.DataFrame. - Limpeza e organização de diretórios.
Certifique-se de que você tem os seguintes requisitos instalados:
- Python 3.7 ou superior
- Bibliotecas listadas no
requirements.txt:requestspandassqlite3
Instale as dependências com o comando:
pip install -r requirements.txt-
Inicialização do Cliente: Instancie o cliente para começar a interagir com a API do TSE.
from tse_client import TseClient client = TseClient() print(client) # <Class TSEClient | interage com API https://dadosabertos.tse.jus.br/api/3/>
-
Listagem de Datasets, Grupos e Tags:
datasets = client.get_dataset_set() groups = client.get_groups_set() tags = client.get_tag_set()
-
Download de Datasets:
-
Para fazer download de todos os datasets:
client.download_datasets(client.urls['nome_dataset'])
-
Para encontrar arquivos dentro de um dataset com base em um padrão:
matched_urls = client.find_dataset('nome_dataset', 'padrao_regex') client.download_datasets(matched_urls)
-
-
Carregamento de Dados em DataFrames: Após o download, você pode carregar os dados em DataFrames para análise:
dataframes = client.load_data_from_dirs(paths=['caminho_para_arquivos'])
-
Remoção de Dados Baixados: Limpe o diretório de trabalho quando necessário:
client.remove_data()
├── tse_client.py # Código principal da classe TseClient
├── data/ # Diretório onde os dados baixados serão armazenados
├── requirements.txt # Dependências do projeto
├── README.md # Documentação do projeto
Se desejar contribuir para este projeto, sinta-se à vontade para abrir um pull request ou relatar problemas através da aba Issues.
Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.