Pandas 具有搜索数组的非类型的熊猫

Pandas 具有搜索数组的非类型的熊猫,pandas,flask,nonetype,Pandas,Flask,Nonetype,我得到了这个错误: AttributeError:“非类型”对象没有属性“替换” 我认为这是因为页面加载时搜索数组是空的,但是在hand之前添加一个“is not None”检查并不能解决这个问题 search = [] if search is not None: search = request.values.get('searchinput').replace(" ","").split(',') return re

我得到了这个错误:

AttributeError:“非类型”对象没有属性“替换”

我认为这是因为页面加载时搜索数组是空的,但是在hand之前添加一个“is not None”检查并不能解决这个问题

search = []     
if search is not None:
    search = request.values.get('searchinput').replace(" ","").split(',')    
    return render_template('drugsafety.html', tables=[filtered.to_html(classes='data')], titles=['na', 'Drug List'])
为什么这不能避免非类型错误

编辑

根据下面的答案更新

searchterms = []

    search = request.values.get('searchinput')
    if search is not None:
        searchterms = search.replace(" ","").split(',') 
    else:
        searchterms == ""

    filtered = df.query ('BP.str.contains(@searchterms, na=False)', engine='python')    
    return render_template('drugsafety.html', tables=[filtered.to_html(classes='data')], titles=['na', 'Drug List'])
这就给了我们

TypeError:不可损坏的类型:“列表”


您将
search
设置为空列表。那就不是没有了。所以它进入了
下面的代码,如果你在那里写

search = request.values.get('searchinput').replace(" ","").split(',')
如果存在一个值,则返回
searchinput
值。如果没有这样的值,则返回
None
。因此,您的值没有
searchinput

您不使用
POST
GET
方法指定请求的发送方式。如果是post,您的表单应该有一个id为
searchinput
的文本输入,如果是get,同样适用,或者您可以有一个名为
searchinput
的url参数

解决方案: First获取搜索输入的值,second如果不是
None
,则替换逗号并拆分

顺便说一句,对于字符串,最好使用这样的检查:

if search: # True if search is not none and not the empty string

谢谢你的回答,你说的很有道理,我只是在努力写。我已经更新了我的问题。在我乱搞代码的过程中,它似乎可以工作,然后在重新启动页面时,它给出了“Unhabable type:List”错误。这是一个完全不同的问题。请为此创建一个新问题。