【问题标题】:Python and Pandas NoneType error for empty list空列表的 Python 和 Pandas NoneType 错误
【发布时间】:2021-09-02 23:53:27
【问题描述】:

我有一个表单,它通过 html (searchinput) 获取输入列表并将其添加到 python 中的查询中。

    searchterms = []
    searchterms = request.values.get('searchinput').strip().split(', ')
    filtered = pd.concat([df.query("Drug.str.contains('|'.join(@searchterms), na=False, case=False, regex=True)", engine='python')])
    return render_template('drugsafety.html', tables=[filtered.to_html(classes='data')], titles=['na', 'Drug List'])

这给了

AttributeError: 'NoneType' 对象没有属性 'strip'

如果我输入一个像 searchterms = ["foobar"] 这样的值,它可以工作,甚至可以毫无错误地接受表单输入。

我怎样才能绕过这个需要一个值来启动它的初始值?

编辑

    searchterms = []
    if searchterms is not None:
        searchterms = request.values.get('searchinput').strip().split(', ')
        filtered = pd.concat([ df.query("Drug.str.contains('|'.join(@searchterms), na=False, case=False, regex=True)", engine='python')])            
    else:  
        searchterms = ["Foo"]

感谢您的帮助

【问题讨论】:

  • 这意味着没有找到值“searchinput”,而是默认为None。
  • 你知道我可以修复它的方法吗?进行非无检查不会改变任何事情。

标签: python pandas list nonetype


【解决方案1】:

尝试将默认值('')放入.get

# put `''` in .get():
searchterms = request.values.get('searchinput', '').strip().split(', ')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多