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.
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
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')
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 |
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.