You need to enable JavaScript to run this app. Python及Pandas处理空表单输入时出现NoneType错误的解决咨询
优惠活动
大模型
产品
解决方案
定价
更多

Python及Pandas处理空表单输入时出现NoneType错误的解决咨询

解决方案

错误原因

  1. 首次加载页面未提交表单时,request.values.get('searchinput') 会返回None,直接对None调用.strip()方法就触发了AttributeError: 'NoneType' object has no attribute 'strip'报错。
  2. 你修改后的代码存在逻辑错误:初始化时searchterms = [],空列表本身就不是None,所以if searchterms is not None的判断永远为真,错误逻辑还是会被执行,没有解决问题。

修复代码

先给get()方法设置空字符串作为默认值,避免拿到None,再判断输入是否有效:

# 安全获取输入,无值时默认返回空字符串,避免None
search_input = request.values.get('searchinput', '').strip()

if search_input:
    # 有有效输入时按规则拆分
    searchterms = search_input.split(', ')
    filtered = df.query("Drug.str.contains('|'.join(@searchterms), na=False, case=False, regex=True)", engine='python')
else:
    # 无输入(首次加载/空提交)时走默认逻辑,可按需二选一
    # 方案1:用默认关键词搜索
    searchterms = ["Foo"]
    filtered = df.query("Drug.str.contains('|'.join(@searchterms), na=False, case=False, regex=True)", engine='python')
    # 方案2:直接返回全量数据,不需要搜索
    # filtered = df

# 原代码的pd.concat无意义,单DataFrame不需要拼接,已移除
return render_template('drugsafety.html', tables=[filtered.to_html(classes='data')], titles=['na', 'Drug List'])

说明

  • 该写法同时覆盖了首次加载无输入、用户输入全空格、用户提交空内容三种异常场景
  • 原代码中包裹df.query的pd.concat属于冗余操作,单DataFrame不需要拼接,直接使用查询结果即可,已优化移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 11:15:04