Neste post explico o tratamento de dados ausentes da consulta API e também o procedimento em casos de erros de consulta.
Resumo
Neste post explico o tratamento de dados ausentes da consulta API e também o procedimento em casos de erros de consulta.

Houve situações em que a resposta do JSON durante as consultas às APIs eram retornadas vazias ou com informações incompletas. Isso por não ter a informação ou simplesmente não ter sido inserida.
Para esse projeto, tiveram duas situações:
Para cada tipo de situação o código preenchia o vazio dependendo do formato do seu campo.
No caso de valores numéricos, retornava None, no caso de textos, retornava N/A (não aplicado).
O None foi utilizado para não demonstrar nem vazio e nem valor zerado.
Portanto, no código desenvolvido foi definido para os respectivos campos, em caso de resposta vazia, os seus devidos retornos.
#Caso não tenha nada (resposta vazia) em "data"
else:
print(f"[Aviso] Resposta 200, mas sem dados para o ID {info_id}")
id_info_dict = {
'name': 'NA',
'slug': 'NA', # Armazenar 'NA' se não houver informação
}Já nos casos de erros de consulta, poderiam ter 3 tipos de situação, mas que não ocorreram durante o desenvolvimento desse projeto:
Para o erro de token de acesso não autorizado, o código desenvolvido foi com uma saída e encerramento do código.
#Falha no acesso da API (401 - Token OAuth não válido)
#Sai do Programa sem sobreescrever no database
elif response.status_code == 401:
try:
erro_json = response.json()
mensagem = erro_json.get("message", "Token inválido ou expirado.")
except ValueError:
mensagem = "Erro 401: Não autorizado. (Resposta não é JSON)"
print(f"[Erro 401] Acesso não autorizado")
print(f"Mensagem da API: {mensagem}")
print("Encerrando o programa. Verifique se o token OAuth está correto ou ainda válido.")
sys.exit(1)Para uma falha genérica, o código prossegue normalmente mas inclui nos campos consultados o erro. O mesmo para os outros tipos de erro.
#Falha na consulta API, com o status para verificação
else:
print(f"[Erro] API falhou para o ID {info_id} - Status: {response.status_code}")
id_info_dict = {
'name': 'Erro', # Armazenar 'Erro' se a API falhar
'slug': 'NA', # Armazenar 'NA' se não houver informação
}
cache_info[info_id] = id_info_dict
return id_info_dict
#Falha na consulta da API por outro motivo
except Exception as e:
print(f"[Erro de exceção] Falha ao consultar API para o ID {info_id}: {e}")
id_info_dict = {
'name': 'Erro', # Armazenar 'Erro' se houver erro na consulta
'slug': 'NA', # Armazenar 'NA' se não houver informação
}
cache_info[info_id] = id_info_dict
return id_info_dictNo próximo Post vou detalhar mais sobre a integração e carregamento dos datasets no Power BI.
Até o próximo post!

Oi, eu sou a Naomi, mas me chamam de Nana (Naná). ADORO tecnologia, matemática, estatística, análises e AMO jogar e fazer artesanato como hobbies. Sou formada em Engenharia e estou fazendo uma especialização em Business Intelligence. Criei este Blog como um espaço para compartilhar meus projetos, descobertas e aprendizados na área de dados. Seja bem-vindo (a) – e boa leitura!
Aqui compartilho minhas experiências, insights e pensamentos sobre meus projetos de Análise de Dados e BI. Espero que seja enriquecedor para você, assim como é para mim. Aproveite a leitura e se quiser, me siga para acompanhar cada postagem!
Blog NanaData – Copyright ® 2025 – Todos os Direitos Reservados.
© 2025 Created with Royal Elementor Addons