1
resposta

Erro ao importar o material da aula anterior

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'

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

url = 'https://labdados.com/produtos'
response = requests.get(url)
dados = pd.DataFrame.from_dict(response.json())

coluna1, coluna2 = st.columns(2)
with coluna1:
    st.metric('Receita', formata_numero(dados['Preço'].sum(), 'R$'))
with coluna2:
    st.metric('Quantidade de vendas', formata_numero(dados.shape[0]))

st.dataframe(dados)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oii, Carlos! Tudo bem?

Agradeço por aguardar o nosso retorno.

O erro JSONDecodeError: Expecting value é retornado quando o código tenta decodificar uma resposta que não está no formato JSON esperado. E como estamos acessando um link da internet (https://labdados.com/produtos) pode ter acontecido alguma instabilidade o que pode gerar o erro.

Uma sugestão é baixar o código feito até o momento, extraí-lo da pasta zipada que contém o arquivo Dashboard.py. Segue o link:

E dentro dessa pasta, execute os comandos no terminal:

  • Crie o ambiente virtual dentro da pasta:
    python -m venv venv
    
  • Pra ativar o ambiente virtual:
    .\venv\Scripts\activate
    
  • Instalação das dependências:
    pip install streamlit requests pandas plotly
    
  • Executando o arquivo:
    streamlit run Dashboard.py
    
    Alguns dos passos podem demorar um pouco, aguarde até finalizar e observe se funciona como esperado.

Espero ter ajudado, conte sempre conosco para te auxiliar.

Até mais, Carlos!