You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shapelets平台:单选组联动表格触发内部服务器错误求助

解决Shapelets仪表板单选组筛选DataFrame时的内部服务器错误

问题根源分析

你的代码存在三个核心问题导致运行时错误:

  • 返回组件而非数据:绑定函数返回了新的app.table实例,但Shapelets的bind机制要求函数返回要更新的组件属性值(此处为表格的data),而非组件本身。
  • 冗余循环与未定义变量风险:通过循环匹配单选值的写法不仅多余,还会在单选值不在categories键中时导致selected_cat未定义,触发NameError。
  • 缺少边界情况处理:未考虑单选值不存在于categories中的场景,直接取值会引发键错误。

修正后的代码

def update_table_data(radio: str):
    # 直接通过键获取对应子集,未匹配到则返回原始数据作为兜底
    selected_cat = categories.get(radio, data)
    return selected_cat

radiogroup = app.radio_group(categories)
app.place(radiogroup)

# 初始化表格
table = app.table(data=data)
# 绑定函数到单选组,函数返回的数据将自动更新表格的data属性
table.bind(update_table_data, radiogroup)
app.place(table)

关键修改说明

  1. 调整返回值逻辑:函数返回筛选后的DataFrame(或原始数据),而非新表格组件,完全符合Shapelets的绑定规则。
  2. 简化取值逻辑:用dict.get()直接获取对应子集,既省去冗余循环,又通过默认参数处理了单选值不匹配的边界场景。
  3. 优化函数命名:将print_selected_option_1改为update_table_data,明确函数的实际用途,提升代码可读性。

内容的提问来源于stack exchange,提问作者Chen Sofia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:15:10