Как обновить значение слайдера с помощью ввода файла Боке

#python #bokeh

Вопрос:

Я создал интерактивную панель управления Боке с несколькими ползунками. Конфигурация всех ползунков представляет собой один сценарий, который можно экспортировать в файл CSV. Теперь я хотел бы иметь возможность перезагрузить сценарий, который хранится в формате CSV, чтобы обновить значения ползунков. К сожалению, я получаю следующую ошибку:

 ValueError: failed to validate Slider(id='3566', ...).value: expected a value of type Real, got [16.] of type ndarray
 

Я не понимаю, что подразумевается под «реальным типом» и как его настроить.

Строки ввода файла выглядят следующим образом:

  def import_data(attr, old, new):

            decoded = b64decode(new)
            f = io.BytesIO(decoded)
            
            df=pd.read_csv(f, sep=';', engine='python')
            dff = pd.DataFrame(df)
            
            source=ColumnDataSource(data=dff)          
            slider.value=source.data['Column1'] #the column has only 1 row with the value 16
            slider2.value=source.data['Column2']
            slider3.value=source.data['Column3']

            
 file_input.on_change('value', import_data)
 

Я в основном пробовал то же самое без ColumnDataSoure, но это привело к той же ошибке.

Ответ №1:

Значение ползунка должно быть равно значению числа («Действительное число»), а не массива. В этом случае в строку можно добавить индекс

 slider.value=source.data['Column1'][0]