Estou tentando obter endereços (Logradouros) a partir de uma lista de CEPs de uma base de dados. Porém está ocorrendo o erro descrito no título, mesmo a coluna em questão sendo do tipo integer e não contém valores nulos.
from geopy.geocoders import Nominatim
from geopy.extra.rate_limiter import RateLimiter
import pycep_correios
import pandas as pd
import psycopg2
conexao = psycopg2.connect(host='meuhost', database='table', user='user', password='password')
cursor = conexao.cursor()
cursor.execute('SELECT cep FROM tb_loja')
result = cursor.fetchall()
df = pd.DataFrame(result)
df.columns = [columns[0] for columns in cursor.description]
def get_adress(cep):
end = pycep_correios.get_address_from_cep(cep)
return end['logradouro']
geolocator = Nominatim(user_agent='cep_lat_long')
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
df['address'] = df['cep'].apply(get_adress)
print(df)
Traceback (most recent call last):
File "C:/Users/linol/Documents/parquet/cep_test.py", line 21, in <module>
df['address'] = df['cep'].apply(get_adress)
File "C:\Users\linol\Documents\parquet\venv\lib\site-packages\pandas\core\series.py", line 4213, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas\_libs\lib.pyx", line 2403, in pandas._libs.lib.map_infer
File "C:/Users/linol/Documents/parquet/cep_test.py", line 15, in get_adress
end = pycep_correios.get_address_from_cep(cep)
File "C:\Users\linol\Documents\parquet\venv\lib\site-packages\pycep_correios\client.py", line 31, in get_address_from_cep
cep = _format_cep(cep)
File "C:\Users\linol\Documents\parquet\venv\lib\site-packages\pycep_correios\client.py", line 54, in _format_cep
raise ValueError('CEP must be a non-empty string containing only numbers') # noqa
ValueError: CEP must be a non-empty string containing only numbers
Process finished with exit code 1