猿问

在plot.ly-Dash隐藏的Div中存储pandas数据帧字典?

我试图弄清楚如何存储我通过调用隐藏 Div 中的 API 获得的数据。数据都需要一次加载,但将返回的对象数量会改变,所以我用 Jsonified 数据框填充字典,键作为下拉列表,并希望将其存储在隐藏的 div 中,然后让用户选择要显示的数据。


我已经让它与单个数据帧一起工作 - 但似乎无法让它与字典一起工作 - 服务器将启动,但当我访问地址时,我会收到“错误加载布局”消息,以及“无法加载资源:服务器在控制台中响应状态为 500(内部服务器错误)”。


下面是我尝试填充范围滑块的示例,其中 data_dict 是 jsoniefied 数据帧的字典。


from helper_functions import data_dict


keys = list(data_dict.keys())

df = data_dict[keys[0]]


app = dash.Dash()


app.layout = html.Div(

    children = [

        html.Div([

            html.Div(id = 'date_selector'),

        ]),


        html.Div(

            id = 'data',

            children = [data_dict],

            style = {'display': 'none'}

        )

    ]

)


@app.callback(

    dd.Output('date_selector', 'children'),

    [dd.Input('data','children')]

)

def update_date_range_slider(data):

    df = data[keys[0]]

    times = pd.date_range(start= df.index.min().date(), end= df.index.max().date() + datetime.timedelta(days=1)).tolist()

    marksdict = {}

    for t in times:

        marksdict[int(time.mktime(t.timetuple()))] = time.strftime('%d %b %Y')


    slider = dcc.RangeSlider(

        min = min(list(marksdict.keys())),

        max = max(list(marksdict.keys())),

        marks = marksdict,

        values = [min(list(marksdict.keys())), max(list(marksdict.keys()))]

    )

    return slider


if __name__ == '__main__':

    app.run_server(debug=True)

这里的任何帮助将不胜感激。


GCT1015
浏览 167回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答