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

Problema com import request

O request que deveria estar instalado previamente não veio. Achei estranho, mas tudo bem, instalei normalmente com o código pip install requests. Ao executar os códigos de exemplo (procedural) que dependem dessa biblioteca os códigos funcionaram normalmente. Porém ao montar o código na classe e executa-lo sempre da erro. Já verifiquei o código diversas vezes e até mesmo copiei e colei do professor para ter certeza que não estava digitando nada errado. Porém recebo a seguinte mensagem ao executar esse código:

cep = "25800320"
objeto_cep = BuscaEndereco(cep)

#r = requests.get("https://viacep.com.br/ws/01001000/json/")
#print(r.text)

a = objeto_cep.acessa_via_cep()
print(type(a.text))
print(a.json())
print(a.json()['cep'])
print(a.json()['bairro'])

File "C:\Users\Rafael\PycharmProjects\Alura_Python_Brasil\y_acesso_cep.py", line 30, in acessa_via_cep dados['bairro'], KeyError: 'bairro' Caso eu apague o que executa" bairro", o mesmo erro aparece para "localidade" O erro indica para essa parte do código:

def acessa_via_cep(self):
        url = "https://viacep.com.br/ws/{}/json/".format(self.cep)
        r = requests.get(url)
        dados = r.json()
        return (
            dados['bairro'],
            dados['localidade'],
            dados['uf']
        )
1 resposta
solução!

Olá,

O json que retorna da sua consulta tem a mesma estrutura de um dictionary no python, sempre uma chave e um valor:

my_json = {'bairro' : 'Sé'} 
print(my_json['bairro']) 

No entanto, caso eu solicite uma chave que não existe, retornará o erro "KeyError", conforme apareceu para você. O erro em questão não está no requests, mas sim por você tentar solicitar um campo no json que não existe. Experimente dar um print(dados), e você verá todas as chaves e valores que retornaram. Quando você tira a linha de bairro e na sequência dá erro em localidade, na verdade é o python te informando que também não existe a chave "localidade" no seu json.

Abs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software