Хранение словаря панд данных в фрейме plot.ly-Dash скрыто Div? - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь выяснить, как хранить мои данные, полученные при вызове API, в скрытых элементах Div.Все данные должны быть загружены за один раз, но количество возвращаемых объектов изменится, поэтому я заполняю словарь с Jsoniefied dataframes, с ключами в качестве раскрывающегося списка и хочу сохранить его в скрытом div, и пустьпользователь выбирает, какие данные отображать.

Я получил это для работы с отдельными фреймами данных - но не могу заставить его работать со словарем - сервер запустится, но я получу «Ошибка загрузки макета»при переходе по адресу и сообщению «Не удалось загрузить ресурс: сервер ответил со статусом 500 (ВНУТРЕННЯЯ ОШИБКА СЕРВЕРА)» в консоли.

Ниже приведен пример, когда я пытаюсь заполнитьПолзунок диапазона, где data_dict - это словарь jsoniefied dataframes.

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)

Любая помощь здесь будет принята с благодарностью.

Спасибо

ОБНОВЛЕНИЕ:

Найденоболее подробное сообщение об ошибке:

bundle.js:2 Error: component.type is undefined
    at s (bundle.js:14)
    at Array.map (<anonymous>)
    at s (bundle.js:14)
    at Array.map (<anonymous>)
    at s (bundle.js:14)
    at e.value (bundle.js:14)
    at p._renderValidatedComponentWithoutOwnerOrContext (react-dom.min.js:13)
    at p._renderValidatedComponent (react-dom.min.js:13)
    at performInitialMount (react-dom.min.js:13)
    at p.mountComponent (react-dom.min.js:13)

1 Ответ

0 голосов
/ 10 октября 2018

Разобрался.

Оказывается, у вас есть json.dumps (data_dict) весь dict после jsonification данных.

Затем вы можете перезагрузить их, используя json.loads(), затем dejsonify фрейма данных.

...