I'm trying to display a dictionary with nested dictionaries inside. And on cells with the nested dictionary, the bokeh datatable display that as [object Object].
So far, I've been unpacking the dictionaries manually to display the actual data, however I was wondering if there is a better way of doing it? perhaps some sort of formatter on the datatable?
I'm open to suggestions.
You could try to do some data manipulation with Pandas before using Bokeh
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import TableColumn, DataTable
from bokeh.io import output_file, show
import pandas as pd
nested_dictionary = {"user1": {'name': 'John', 'age': '27', 'sex': 'Male'},
"user2": {'name': 'Marie', 'age': '22', 'sex': 'Female'},
"user3": {'name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'}}
df = pd.DataFrame.from_dict(nested_dictionary, orient='index')
print (df.head())
source = ColumnDataSource(df)
# Dataframe -> DataTable
table_columns = [TableColumn(field=name, title=name)for name in df.columns]
data_table = DataTable(source=source, columns=table_columns, width=580, height=280)
# Specify the name of the output file and show the result
output_file('example_so.html')
show(data_table)
If your data is coming from a JSON file check json_normalize() from pandas.io.json