Несколько выпадающих списков в Plotly Dash

Рейтинг: 1Ответов: 0Опубликовано: 23.06.2023

Хотел бы создать несколько выпадающих списков в соответствии со структурой, задаваемой filter_options:

from dash import Dash, dcc, html, Input, Output,callback

filter_options = {
    'причины': ['возврат/зачет', 'вычеты', 'документы'],
    'последствия': ['документы', 'МНК'],
    'Классификация НО действий НП': ['взаимозависимые организации', 'дробление бизнеса']
}

def make_label_value(filter_options):
    label_value = []
    for k in range(len(list(filter_options.keys()))):
        a_list = []
        for x in range(len(filter_options[list(filter_options.keys())[k]])):
            a = [{f"label_{k}": f'{list(filter_options.keys())[k]}_{x}', f"value_{k}": key} for key in filter_options[list(filter_options.keys())[k]]][x]
            a_list.append(a)
        label_value.append(a_list)
    return label_value

label_value_lists = make_label_value(filter_options)

app = Dash(__name__)

for l in range(len(label_value_lists)):
    app.layout = html.Div([
        dcc.Dropdown(label_value_lists[l],
            id=f'demo-dropdown-{l}',
            placeholder=f"{list(filter_options.keys())[l]}",
            multi=True,
        ),
        html.Div(id=f'dd-output-container-{l}')
    ])

for s in range(len(label_value_lists)):
    app.callback(
        Output(f'dd-output-container-{s}', 'children'),
        Input(f'demo-dropdown-{s}', f'value'))#, f'label_{s}'))

def update_output(value, label):
    return f'You have selected {value}'


if __name__ == '__main__':
    app.run_server(debug=True)

Но получил массу ошибок: введите сюда описание изображения

Хотя, как мне кажется, структура callback'ов правильная: введите сюда описание изображения

В общем, был бы очень признателен, если укажете на ошибку.

Ответы

Ответов пока нет.