Pandas 具有搜索数组的非类型的熊猫
我得到了这个错误: AttributeError:“非类型”对象没有属性“替换” 我认为这是因为页面加载时搜索数组是空的,但是在hand之前添加一个“is not None”检查并不能解决这个问题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
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”错误。这是一个完全不同的问题。请为此创建一个新问题。