【发布时间】:2020-05-24 07:40:13
【问题描述】:
我正在使用 Python3、Flask 和 Dash 开发一个项目。
我正在使用来自dash_table 的DataTable() 可视化一个CSV 表,并希望突出显示一些特定的单元格。
Accordistrong 为表格样式的文档提供文本,这可以通过使用 DataTable 定义 (reference) 中的 style_data_conditional 属性来完成。
我的 CSV 表如下所示:
testclient, 0.40, 0.48, False, False, False, 0.14, True, True, 0.0, 2
raspberrypi, 0.20, 0.21, False, True, False, 0.18, True, False, 0.0, 3
当尝试访问第一列时,所有样式更改都有效。
[...]
style_data_conditional=[
{
'if': {
'column_id': 'hostname',
'filter_query': '{hostname} eq "testclient"'
},
'color': 'green',
}
],
[...]
但是,当尝试访问任何其他行列(如“ftp”或“http”)时,它不起作用,即使我在 app.run(...) 函数调用中使用 debug=True 参数,我也没有得到错误输出。
[...]
style_data_conditional=[
{
'if': {
'column_id': 'ftp',
'filter_query': '{ftp} eq "True"'
},
'color': 'green',
}
],
[...]
DataTable 内部有一个“样式”属性的顺序...
- style_data_conditional
- style_data
- style_filter_conditional
- style_filter
- style_header_conditional
- style_header
- style_cell_conditional
- style_cell
...但正如您所看到的,给定的样式属性是清单中第一个提到的。
表是这样定义的:
content = dash_table.DataTable(
id='table',
columns=[{"name": i, "id": i} for i in df.columns],
[...]
你有什么线索吗,为什么仅仅通过更改column_id,DataTable 的行为就那么奇怪?
【问题讨论】:
标签: python pandas datatable plotly-dash