Я хочу загрузить csv-файл со сложными числами в веб-приложение bokeh.Решение DuCorey отлично работает для целых чисел и чисел с плавающей точкой, см .: Загрузить файл CSV и прочитать его в веб-приложении Bokeh Но когда я изменяю тип values_type с Int на Complex в models.py и вставляю комплексное число вCSV-файл, он больше не работает.Я не хочу рисовать импортированный массив, как это делал Дукори (и он не будет работать в его примере).Просто импортируйте значения и напечатайте их.
Я изменил следующие три файла:
models.py
from bokeh.core.properties import List, String, Dict, Int, Complex, Float
from bokeh.models import LayoutDOM
class FileInput(LayoutDOM):
__implementation__ = 'static/js/extensions_file_input.coffee'
__javascript__ = './input_widget/static/js/papaparse.js'
value = String(help="""
Selected input file.
""")
file_name = String(help="""
Name of the input file.
""")
accept = String(help="""
Character string of accepted file types for the input. This should be
written like normal html.
""")
data = List(Dict(keys_type=String, values_type=Complex))
csv-файл
x,y
1,2
3,3
3,5+1j
10,25
и main.py
from bokeh.core.properties import List, String, Dict, Int
from bokeh.models import LayoutDOM
from bokeh.layouts import column
from bokeh.models import Button, ColumnDataSource
from bokeh.io import curdoc
from bokeh.plotting import Figure
import pandas as pd
from models import FileInput
button_input = FileInput(id="fileSelect",
accept=".csv")
def change_plot_data(attr, old, new):
new_df = pd.DataFrame(new)
print(new_df)
button_input.on_change('data', change_plot_data)
layout = column(button_input)
curdoc().add_root(layout)
Я получаю следующее сообщение об ошибке: DeserializationError ('Сложный ожидаемый комплекс, получил 5 + 1j').
Спасибо за все советы!