1
resposta

Problemas com a URL do Curso

Bom dia

Estou a 2 dias com problemas de acesso na URL indicada pelo curso 'https://labdados.com/produtos'

Acessando pelo navegador apresenta o erro 502

Abaixo o código que estou tentando executar, porém não encontro nenhum outro tipo de erro

Importando as Bibliotecas

import streamlit as st
import requests
import pandas as pd
import plotly.express as px

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'

Identificando um título

st.title('DASHBOARD DE VENDAS :shopping_trolley:')

Importando o API

url = 'https://labdados.com/produtos'
response = requests.get(url)

Transformando daods em Jason e Dataframe

dados = pd.DataFrame.from_dict(response.json())

Formatar a coluna de data

dados ['Data da Compra'] = pd.to_datetime(dados['Data da Compra'], format = '%d/%m/%Y')

##Tabelas

#Grafico de Mapa
receita_estados = dados.groupby('Local da Compra')[['Preço']].sum()
receita_estados = dados.drop_duplicates(subset= 'Local da Compra'[['Local da Compra','lat','lon']]).merge(receita_estados, left_on= 'Local da Compra', right_index=True).sort_values('Preço',ascending=False)

#Grafico de Linha
receita_mensal = dados.set_index('Data da Compra').groupby(pd.Grouper(freq='M'))['Preço'].sum().reset_index()
receita_mensal['Ano'] = receita_mensal['Data da Compra'].dt.year
receita_mensal['Mes'] = receita_mensal['Data da Compra'].dt.month_name()

#Grafico de Coluna
receita_categorias = dados.groupby('Categoria do Produto')[['Preço']].sum().sort_values('Preço',ascending=False)

##Gráficos
fig_mapa_receitas = px.scatter_geo(receita_estados,
lat='lat',
lon='lon',
scope='south america',
size = 'Preço',
template='seaborn',
hover_name='Local da Compra',
hover_data={'lat':False, 'lon':False},
title='Receita por Estado')

fig_receita_mensal = px.line(receita_mensal,
x='Mes',
y='Preço',
markers=True,
range_y=(0, receita_mensal.max()),
color='Ano',
line_dash='Ano',
title='Receita Mensal')

fig_receita_mensal.update_layout(yaxis_title = 'Receita')

fig_receita_estados = px.bar(receita_estados.head(),
x = 'Local da compra',
y = 'Preço',
text_auto=True,
title='Top Estados (receita)')

fig_receita_estados.update_layout(yaxis_title = 'Receita')

fig_receita_categorias = px.bar(receita_categorias,
text_auto=True,
title= 'Receita por Categoria')

fig_receita_categorias.update_layout(yaxis_title = 'Receita')

##Criando Abas
aba1, aba2, aba3 = st.tabs(['Receita', 'Quantidade de Vendas', 'Vendedores'])

with aba1:
## Visualização no streamlit
# Formatando as Colunas
coluna1, coluna2 = st.columns(2)
with coluna1:

# Incluindo as Métricas no Aplicativo
    st.metric('Receita', formata_numero(dados['Preço'].sum(), 'R$'))
    st.plotly_chart(fig_mapa_receitas, use_container_width= True) 
    st.plotly_chart(fig_receita_estados, use_container_width= True) 
with coluna2:
    st.metric('Quantidade de vendas', formata_numero(dados.shape[0]))
    st.plotly_chart(fig_receita_mensal, use_container_width= True) 
    st.plotly_chart(fig_receita_categorias, use_container_width= True) 

with aba2:
## Visualização no streamlit
# Formatando as Colunas
coluna1, coluna2 = st.columns(2)
with coluna1:

# Incluindo as Métricas no Aplicativo
    st.metric('Receita', formata_numero(dados['Preço'].sum(), 'R$'))
    
with coluna2:
    st.metric('Quantidade de vendas', formata_numero(dados.shape[0]))
    

with aba3:
## Visualização no streamlit
# Formatando as Colunas
coluna1, coluna2 = st.columns(2)
with coluna1:

# Incluindo as Métricas no Aplicativo
    st.metric('Receita', formata_numero(dados['Preço'].sum(), 'R$'))
    
with coluna2:
    st.metric('Quantidade de vendas', formata_numero(dados.shape[0]))
    st.plotly_chart(fig_receita_mensal, use_container_width= True) 
    st.plotly_chart(fig_receita_categorias, use_container_width= True) 

DataFrame

##st.dataframe(dados)

1 resposta

Ei! Tudo bem, Andre?

O link enfrentou uma instabilidade momentânea, mas já está tudo certo. Acesso abaixo o link e teste no código novamente:

Espero ter ajudado e qualquer dúvida, compartilhe conosco.

Até mais, Andre!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!