Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Estou tendo problemas com o código abaixo, basicamente eu tenho uma tabela com CEPS, eu vou na API dos correios para buscar a latitude e longitude, o tempo de 1 segundo é necessário porque a API dos correios tem um tempo de resposta de 1 segundo, se eu tirar esse tempo ele retorna um erro já na segunda requisição. O que fazer para corrigir esse erro? Obrigado

for index, data in dataset.iterrows():

url = "https://www.cepaberto.com/api/v3/cep?cep="+ str(data['CEP'])
# O seu token está visível apenas pra você
headers = {'Authorization': 'Token token=5f71e3519466671e52b02de90aa733fb'}
response = requests.get(url, headers=headers)

if response.json() != {}:
    dataset.loc[index, 'Latitude'] = response.json()['latitude']
    dataset.loc[index, 'Longitude'] = response.json()['longitude']
else:
    dataset.loc[index, 'Latitude'] = 0
    dataset.loc[index, 'Longitude'] = 0
time.sleep(1)

#############ERRO####################

JSONDecodeError Traceback (most recent call last) in 6 response = requests.get(url, headers=headers) 7 ----> 8 if response.json() != {}: 9 dataset.loc[index, 'Latitude'] = response.json()['latitude'] 10 dataset.loc[index, 'Longitude'] = response.json()['longitude']

~\anaconda3\lib\site-packages\requests\models.py in json(self, *kwargs) 895 # used. 896 pass --> 897 return complexjson.loads(self.text, *kwargs) 898 899 @property

~\anaconda3\lib\json_init__.py in loads(s, encoding, cls, objecthook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 346 parse_int is None and parse_float is None and 347 parse_constant is None and object_pairs_hook is None and not kw): --> 348 return defaultdecoder.decode(s) 349 if cls is None: 350 cls = JSONDecoder

~\anaconda3\lib\json\decoder.py in decode(self, s, w) 335 336 """ --> 337 obj, end = self.rawdecode(s, idx=_w(s, 0).end()) 338 end = _w(s, end).end() 339 if end != len(s):

~\anaconda3\lib\json\decoder.py in raw_decode(self, s, idx) 353 obj, end = self.scan_once(s, idx) 354 except StopIteration as err: --> 355 raise JSONDecodeError("Expecting value", s, err.value) from None 356 return obj, end

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

1 resposta
solução!

Depois da demora corri atras de respostas e ajudas em outros fóruns fora da Alura e consegui resolver o problema por conta própria, acredito que esse fórum tem o objetivo de ajudar, porém ha muita demora e acaba atrapalhando os estudos, tem que ser mais efetivo, muita demora nas respostas.

A solução foi tratar o erro:

for index, data in dataset.iterrows():

url = "https://www.cepaberto.com/api/v3/cep?cep="+ str(data['CEP'])
# O seu token está visível apenas pra você
headers = {'Authorization': 'Token token=5f71e3519466671e52b02de90aa733fb'}
response = requests.get(url, headers=headers)
try:
    if response.json() != {}:
        dataset.loc[index, 'Latitude'] = response.json()['latitude']
        dataset.loc[index, 'Longitude'] = response.json()['longitude']
    else:
        dataset.loc[index, 'Latitude'] = 0
        dataset.loc[index, 'Longitude'] = 0
    time.sleep(1)
except ValueError:
    print("Resposta Inválida")