flysmog.pages.dev

Como criar um script Python para enriquecer endereço com CEP?

Enriquecer endereços usando CEPs é uma tarefa comum em processamento de dados, e um script Python automatiza esse processo de forma rápida e confiável. Com bibliotecas especializadas, você pode consultar APIs públicas e obter informações completas sobre logradouro, bairro, cidade e estado, eliminando a necessidade de digitação manual e reduzindo erros.

Pré-requisitos

Instalando as dependências necessárias

Para começar, é necessário instalar a biblioteca requests, que facilita a comunicação com APIs web. Execute o seguinte comando no terminal:

pip install requests

Criando o script Python para enriquecer endereços com CEP

O script abaixo utiliza a API pública do ViaCEP para consultar informações de endereço com base no CEP. Ele lê uma lista de CEPs de um arquivo CSV, consulta a API para cada CEP e salva os resultados em um novo arquivo CSV com todos os campos enriquecidos.

import requests
import csv

def consultar_cep(cep):
    url = f"https://viacep.com.br/ws/{cep}/json/"
    try:
        response = requests.get(url)
        if response.status_code == 200:
            return response.json()
        else:
            return None
    except Exception as e:
        return None

def enriquecer_enderecos(input_file, output_file):
    with open(input_file, mode='r', newline='') as infile:
        reader = csv.DictReader(infile)
        fieldnames = reader.fieldnames + ['logradouro', 'bairro', 'localidade', 'uf']
        with open(output_file, mode='w', newline='') as outfile:
            writer = csv.DictWriter(outfile, fieldnames=fieldnames)
            writer.writeheader()
            for row in reader:
                cep = row.get('cep', '').replace('-', '').strip()
                if cep:
                    data = consultar_cep(cep)
                    if data and 'erro' not in data:
                        row.update({
                            'logradouro': data.get('logradouro', ''),
                            'bairro': data.get('bairro', ''),
                            'localidade': data.get('localidade', ''),
                            'uf': data.get('uf', '')
                        })
                writer.writerow(row)

if __name__ == "__main__":
    enriquecer_enderecos('ceps_input.csv', 'enderecos_enriquecidos.csv')

Exemplo Prático

Veja abaixo um exemplo de arquivo de entrada e o resultado esperado após a execução do script:

CEP (Entrada) Logradouro (Saída) Bairro (Saída) Cidade (Saída) UF (Saída)
01001-000 Praça da Sé Se São Paulo SP
20021-260 Praça Floriano Centro Rio de Janeiro RJ
80010-010 Praça Santos Andrade Centro Curitiba PR

Conclusão

Com este script Python, você automatiza o enriquecimento de endereços com base em CEPs, economizando tempo e garantindo precisão nos dados. Basta ajustar os nomes dos arquivos de entrada e saída conforme necessário e executar o script para processar grandes volumes de CEPs de forma eficiente.