Mais que um portfólio, um Blog Novos posts todos os dias Compartilhando conhecimento e aprendizados

#15 – Tratamento de dados ausentes e 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.

Post 15 - Imagem Post

Resposta Vazia do JSON

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:

  1. Respostas vazias: a consulta dava certo, mas não tinha a informação.
  2. Respostas incompletas: a consulta dava certo, mas a informação vinha incompleta, como alguns campos em vazio.

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
	}

Erros de consulta

Já nos casos de erros de consulta, poderiam ter 3 tipos de situação, mas que não ocorreram durante o desenvolvimento desse projeto:

  1. Token de acesso não autorizado;
  2. Falha na API com o código de erro;
  3. Outro tipo de erro.

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_dict

No próximo Post vou detalhar mais sobre a integração e carregamento dos datasets no Power BI.

Até o próximo post!

Gostou do Conteúdo? Compartilhe

Também pode te interessar:

Blog NanaData

Autora Blog NanaData

Naomi Oikawa

Analista de BI e dados.

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!

Posts Recentes

  • All Post
  • Aprendizados
  • Ferramentas
  • Hobbies
  • Jogos
  • Livros
  • Projetos
  • Sem categoria
    •   Back
    • Acadêmicos
    • Profissionais
    • Pessoais
    •   Back
    • Power BI
    • Python
    • Automação
    •   Back
    • Cursos
    • Experiências pessoais
    • Experiências profissionais
    •   Back
    • Lazer
    • Outros Hobbies
Edit Template

Sobre

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

error: