当前位置: 首页 > 知识库问答 >
问题:

尝试使用多个输出选项创建表时的破折号错误

邓高韵
2023-03-14

我正在尝试使用输入在Web上创建仪表板表格。然而,问题是,数据是从回调中从数据库创建的,因此,我不知道列的名称,除非pandas DataFramework是使用回调函数创建的。我已经检查了我是否得到了正确的数据。但是,我们无法显示它。我使用了多个输出选项(使用破折号0.41)

我的代码看起来如下:(我没有提供函数的详细信息,它生成的熊猫数据帧在回调某些Func,因为这是不重要的这个破折号代码麻烦拍摄的目的。

 import dash_table as dt

 def someFunc(ID, pattern_desc, file_path):

       ## do something 
      return df # pandas dataframe
 external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

 app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

 server = app.server

 app = dash.Dash(__name__)

 app.config.suppress_callback_exceptions = True
 app.css.config.serve_locally = True
 app.scripts.config.serve_locally = True


 app.layout = html.Div(
      children = [
      html.Div(
      id = 'title',
      children = appTitle,
      className = 'titleDiv'  
   ),
 html.Div(
    children = [
        html.Div(
            children = "Enter ID:",
            className = 'textDiv'
        ),
        dcc.Input(
            id = 'ID',
            type = 'text',
            value = 'ABCER1',
            size = 8),

        html.Div(
            children = "Enter Test Pattern",
            className = 'textDiv'
        ),
        dcc.Input(
            id = 'pattern_desc',
            type = 'text',
            value = 'Sample',
            size = 20),

         html.Div(
            children = "Enter File OutPut Path:",
            className = 'textDiv'
        ),
        dcc.Input(
            id = 'file_path',
            type = 'text',
            value = '',
            size = 30),

        html.Button(
            id = 'submit',
            n_clicks = 0,
            children = 'Search'
        )
    ]
),

    html.Div(
        id = 'tableDiv',
        children = dash_table.DataTable(
        id = 'table',
        style_table={'overflowX': 'scroll'},
        style_as_list_view=True,
        style_header={'backgroundColor': 'white','fontWeight': 
            'bold'},
         ),
        className = 'tableDiv'
    )
  ]
)

  # callback to update the table
  @app.callback([Output('table', 'data'),Output('table', 'columns')]
          [Input('submit', 'n_clicks')],
          [State('ID', 'value'),  State('pattern_desc', 'value'), 
        State('file_path', 'value')])
   def update_table(n_clicks, ID, pattern_desc, file_path):

         df = someFunc(ID, pattern_desc, file_path)
    mycolumns = [{'name': i, 'id': i} for i in df.columns]
        return html.Div([
                dt.DataTable(
            id='table',
            columns=mycolumns,
            data=df.to_dict("rows")
         )
        ])

因此,在本例中,接受3个输入参数的函数someFunc返回一个数据帧,该数据帧可以基于输入具有不同的列。因此,应用程序布局应该根据输入动态显示回调函数输出所给出的列。我应该得到的网页填充表和列,但不是得到一个错误。当我运行这个函数时,我将通过函数生成的数据获取到文件中,但dash无法生成网页上的表。我得到以下错误:

猛冲例外情况。InvalidCallbackReturnValue:回调。。桌子数据桌子柱。。是一个多输出。输出类型应为列表或元组,但得到了Div([DataTable(columns=[{'name':'pattern\u desc','id':'pattern\u desc'}。。。。。。

不确定我如何能做到这一点。任何帮助将不胜感激。

共有2个答案

骆利
2023-03-14

宜兴上面所说的是正确的——因此,如果您只想将数据和列返回到Datatable,那么您的返回语句应该是df。为了记录(“行”),mycolumns。如果您想保持return语句现在的状态,那么将decorator更改为

`@app.callback(Output('tableDiv', 'children'),
          [Input('submit', 'n_clicks')],
          [State('ID', 'value'),
           State('pattern_desc', 'value'), 
           State('file_path', 'value')])`

我认为第一种选择更可取。

太叔栋
2023-03-14

错误消息相当简单。装饰师

`@app.callback([Output('table', 'data'),
 Output('table', 'columns')], ...)`

指定2个输出,因此函数应该返回元组(数据,列)而不是html。div(...)值。

 类似资料:
  • 我试图在Spring Tool Suite上创建一个新的Spring Starter项目,但每次都会出现相同的错误: IoException:将C:\users\eumagnun\appdata\local\temp\downloadcache170748875579761919425966721163343\pw2avw5ccnm2hcpbelrlcrb1zjk=.part重命名为 有人有过这个

  • 问题内容: 我要备份数据库时出现错误 有什么办法可以用表名(temp_01-01-000001)解决这个问题。 问题答案: 您可以编辑文件/system/database/drivers/mysql/mysql_utility.php的第132行 从: 至:

  • 我是Dash的新手,在尝试基于范围滑块的范围/值进行可视化筛选时遇到了一些问题。我已经附加了我下面使用的代码块,但我似乎无法开始工作。我已经看了留档,但不知道这个问题是否与RangeSliders有关,或者只是我如何尝试通过“和”命令过滤数据框。

  • 我有几个项目保存到documents目录。我目前需要这些以编程方式移动到另一个目录。我成功地创建了新目录,但在使用FileManager.Default.MoveItem时似乎并没有看到这一点。 用于创建目录的代码。 我用这个代码检查我的URL。 它输出这个。 无法将文件移动到新媒体路径错误-错误域=nscocoaErrorDomain代码=516“无法将Image_5移动到”Documents“

  • 我试图实现一个不为包装器消耗额外内存的选项。我创建一个类。Null表示无,非Null值表示有。 2 已初始化 在com.maybetest$.delayedendpoint$com$maybetest$1(Maybe.scala:34)在com.maybetest$delayedinit$body.apply(maybe.scala:30)在scala.function0$class.apply$