如何获取下拉框选中值?Gradio集成EDA模块遇更新失效问题
问题修复方案
你的代码存在三个关键问题,导致下拉框切换无反应,逐个修正如下:
- 缺少目标Textbox组件:你需要将EDA结果更新到
gr.Textbox,但代码里完全没创建这个组件,Gradio找不到要更新的对象。 - 回调函数错误直接赋值
.value:Gradio的组件更新逻辑依赖函数返回值,不能在回调里直接给resultados_eda.value赋值,必须把结果return出去。 - 事件绑定的
outputs参数错误:你写的variable_objetivo.value完全不符合要求,应该指定要更新的Textbox组件实例。
修正后的完整代码:
import json # 如果需要格式化字典显示,可导入 eda = EDA(df=df, target=None) def update_target_and_textbox(selected_value): print(selected_value) eda.new_target(new_target=selected_value) # 若需格式化字典显示,替换成 return json.dumps(eda.introductory_results(), indent=2) return eda.introductory_results() # Gradio interface with gr.Blocks(css="Gradio/styles.css", title="0Accidentes") as demo: gr.Markdown(""" 0Accidentes""", elem_classes="cabecero") with gr.Tab("EDA"): with gr.Row(): with gr.Column(scale=1): variable_objetivo = gr.Dropdown(label="Variable Objetivo", choices=sorted(list(df.columns))) # 新增用于显示EDA结果的Textbox组件 resultados_eda = gr.Textbox(label="EDA数据集信息", lines=10) # 正确绑定事件:输入为下拉框,输出为Textbox variable_objetivo.change(update_target_and_textbox, inputs=variable_objetivo, outputs=resultados_eda) demo.launch()
内容的提问来源于stack exchange,提问作者pablogwapo
相关产品推荐
相关产品推荐

