Pandas 使用 flask 为搜索数组获取 Nonetype
Pandas with flask getting Nonetype for search array
我收到此错误:
AttributeError: 'NoneType' object has no attribute 'replace'
我认为这是因为页面加载时搜索数组为空,但事先添加 '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'])
为什么这不会逃避 NoneType 错误?
编辑
根据以下回答更新
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: unhashable type: 'list'
您将 search
设置为空列表。这使得它不是 None。所以它进入 if
下面的代码 你写
search = request.values.get('searchinput').replace(" ","").split(',')
这个returns searchinput
值是有的。如果没有这样的值它returns None
。所以你的值没有 searchinput
.
您没有指定如何发送请求,使用POST
或GET
方法。如果是 post,你的表单应该有一个 ID 为 searchinput
的文本输入,如果是 get,同样适用,或者你可以有一个名为 searchinput
[ 的 url 参数=22=]
解决方法:
First 获取搜索输入的值,second 如果不是 None
,替换逗号并拆分。
顺便说一句,对于字符串,首选这样的检查:
if search: # True if search is not none and not the empty string
我收到此错误:
AttributeError: 'NoneType' object has no attribute 'replace'
我认为这是因为页面加载时搜索数组为空,但事先添加 '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'])
为什么这不会逃避 NoneType 错误?
编辑
根据以下回答更新
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: unhashable type: 'list'
您将 search
设置为空列表。这使得它不是 None。所以它进入 if
下面的代码 你写
search = request.values.get('searchinput').replace(" ","").split(',')
这个returns searchinput
值是有的。如果没有这样的值它returns None
。所以你的值没有 searchinput
.
您没有指定如何发送请求,使用POST
或GET
方法。如果是 post,你的表单应该有一个 ID 为 searchinput
的文本输入,如果是 get,同样适用,或者你可以有一个名为 searchinput
[ 的 url 参数=22=]
解决方法:
First 获取搜索输入的值,second 如果不是 None
,替换逗号并拆分。
顺便说一句,对于字符串,首选这样的检查:
if search: # True if search is not none and not the empty string