Estou tendo esse erro desde o começo do projeto até o fim, se atualizo a página funciona, porém trocando as páginas ele aparece esse erro novamente.
Estou tendo esse erro desde o começo do projeto até o fim, se atualizo a página funciona, porém trocando as páginas ele aparece esse erro novamente.
Ei! Tudo bem, Victor?
Entendo que deve ser frustrante lidar com esse erro recorrente, mas vamos encontrar uma solução. Para começar, o erro é sobre problemas ao tentar acessar os dados da API, que pode ser por vários motivos. Sendo o mais comum a conexão instável ou formato inválido.
Separei alguns pontos para você verificar, como:
A URL: https://labdados.com/produtos
. Teste ela direto no navegador para checar se está funcionando certinho, até o momento por aqui está.
Recomendo verificar a resposta da API (linha 45 do código) para garantir que os dados estejam no formato esperado, adicione um print para inspecionar os dados antes de convertê-los para JSON:
print(response.text)
import streamlit as st
import requests
import pandas as pd
import plotly.express as px
st.set_page_config(layout= 'wide')
def formata_numero(valor, prefixo = ''):
for unidade in ['', 'mil']:
if valor <1000:
return f'{prefixo} {valor:.2f} {unidade}'
valor /= 1000
return f'{prefixo} {valor:.2f} milhões'
st.title('DASHBOARD DE VENDAS :shopping_trolley:')
url = 'https://labdados.com/produtos'
regioes = ['Brasil', 'Centro-Oeste', 'Nordeste', 'Norte', 'Sudeste', 'Sul']
st.sidebar.title('Filtros')
regiao = st.sidebar.selectbox('Região', regioes)
if regiao == 'Brasil':
regiao = ''
todos_anos = st.sidebar.checkbox('Dados de todo o período', value = True)
if todos_anos:
ano = ''
else:
ano = st.sidebar.slider('Ano', 2020, 2023)
query_string = {'regiao':regiao.lower(), 'ano':ano}
response = requests.get(url, params= query_string)
dados = pd.DataFrame.from_dict(response.json())
dados['Data da Compra'] = pd.to_datetime(dados['Data da Compra'], format = '%d/%m/%Y')
filtro_vendedores = st.sidebar.multiselect('Vendedores', dados['Vendedor'].unique())
if filtro_vendedores:
dados = dados[dados['Vendedor'].isin(filtro_vendedores)]
Espero que uma dessas sugestões te ajude a reparar o erro.
Até mais, Victor!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado!