Validar CEPs em tempo real é essencial para manter a integridade de dados em sistemas de logística, e-commerce e CRM. Com este método, você elimina registros inválidos antes que contaminem seu banco de dados, garantindo entregas precisas e relatórios confiáveis.
Para realizar a validação de CEPs, utilizaremos a biblioteca requests, que facilita requisições HTTP. Execute o comando abaixo para instalar:
pip install requests
Esta função consulta a API ViaCEP e retorna True se o CEP for válido ou False caso contrário. O código também trata possíveis erros de rede ou formato inválido.
import requests
def validar_cep(cep):
cep = cep.replace('-', '').strip()
if len(cep) != 8 or not cep.isdigit():
return False
try:
response = requests.get(f'https://viacep.com.br/ws/{cep}/json/')
if response.status_code == 200:
data = response.json()
return data.get('cep') is not None
return False
except requests.exceptions.RequestException:
return False
Agora, integre a função no seu fluxo de processamento. O exemplo abaixo lê um arquivo CSV, valida cada CEP e filtra os registros inválidos antes de salvar o resultado.
import pandas as pd
def processar_dados(input_file, output_file):
df = pd.read_csv(input_file)
df['cep_valido'] = df['cep'].apply(validar_cep)
df_filtrado = df[df['cep_valido'] == True].drop(columns=['cep_valido'])
df_filtrado.to_csv(output_file, index=False)
# Exemplo de uso
processar_dados('pedidos.csv', 'pedidos_validados.csv')
| CEP de Entrada | Válido? | Motivo |
|---|---|---|
| 01001-000 | Sim | CEP existente em São Paulo/SP |
| 12345678 | Não | CEP não encontrado na base |
| 1234-567 | Não | Formato inválido (menos de 8 dígitos) |
| 99999-999 | Não | CEP inexistente |
Com este método, você automatiza a validação de CEPs em seu pipeline de dados, garantindo que apenas registros corretos sejam processados. A integração com a API ViaCEP é simples e eficaz, permitindo que você mantenha a qualidade dos dados sem intervenção manual.