いまにゅうさんのpython講座にてstreamlitのアプリを作ってるんですが、下記のエラーが出るようになりました。調べたところ、「Content-Typeがhtmlになってるからjsonに変える」のような回答が多数ありましたので、書いてる通りにしたところ「 'Content-Type': 'application/json」になりました。しかしまだ同じエラーのままです。ご助力いただけると幸いです。
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
全コード
import pandas as pd import yfinance as yf import altair as alt import streamlit as st st.title('米国株可視化アプリ') st.sidebar.write(""" # GAFA株価 こちらは株価可視化ツールです。以下のオプションから表示日数を指定できます。 """) st.sidebar.write(""" ## 表示日数選択 """) days = st.sidebar.slider('日数', 1, 50, 20) st.write(f""" ### 過去**{days}日間**のGAFA株価 """) def get_data(days,tickers): df = pd.DataFrame() for company in tickers.keys(): tkr = yf.Ticker(tickers[company]) hist = tkr.history(period=f'{days}d') hist.index = hist.index.strftime('%d %B %Y') hist = hist[['Close']] hist.columns = [company] hist = hist.T hist.index.name = 'Name' df = pd.concat([df,hist]) return df st.sidebar.write(""" ## 株価の範囲指定 """ ) ymin, ymax = st.sidebar.slider( '範囲を指定してください。', 0.0, 3500.0, (0.0, 3500.0) ) tickers = { 'apple': 'AAPL', 'facebook': 'FB', 'google': 'GOOGL', 'microsoft': 'MSFT', 'netflix': 'NFLX', 'amazon': 'AMZN', } df = get_data(days, tickers) companies = st.multiselect( '会社名を選択してください。', list(df.index), ['google', 'amazon', 'facebook', 'apple'] ) if not companies: st.error('少なくとも一社は選んでください。') else: data = df.loc[companies] st.write("### 株価 (USD)", data.sort_index()) data = data.T.reset_index() data = pd.melt(data, id_vars=['Date']).rename( columns={'value': 'Stock Prices(USD)'} ) chart = ( alt.Chart(data) .mark_line(opacity=0.8, clip=True) .encode( x='Date:T', y=alt.Y('Stock Prices(USD):Q', stack=None, scale=alt.Scale(domain=[ymin, ymax])), color='Name:N' ) ) st.altair_chart(chart, use_container_width=True)
どこでエラーが発生していますか?
なんとなく、これ https://stackoverflow.com/questions/68331065 じゃないかと思われます。
あなたの回答
tips
プレビュー