pandas - 带有烧瓶的熊猫为搜索数组获取 Nonetype
问题描述
我收到此错误:
AttributeError:“NoneType”对象没有“替换”属性
我认为这是因为页面加载时搜索数组为空,但事先添加“不是无”检查并不能解决它。
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'])
这现在给出
类型错误:不可散列类型:“列表”
解决方案
您设置search
为空列表。这使得它不是无。所以它进入了if
你写的下面的代码
search = request.values.get('searchinput').replace(" ","").split(',')
这返回的searchinput
值是有一个。如果没有这样的值,则返回None
。所以你的价值观没有searchinput
。
您没有指定如何发送请求、使用POST
或GET
方法。如果是 post,你的表单应该有一个带有 id 的文本输入searchinput
,如果它是 get,同样适用,或者你可以有一个名为 url 的参数searchinput
解决方法:
首先获取搜索输入的值,其次如果不是None
,则替换逗号并拆分。
顺便说一句,对于字符串,首选这样的检查:
if search: # True if search is not none and not the empty string
推荐阅读
- git - Git reset 显示要从服务器获取的一项
- php - 关于如何清理/缩短我的代码的任何建议?
- java - 当我的应用程序运行时,我需要禁用 android 设备的触摸
- javascript - 在输入字段中的文本输入后添加一个单位 angular 5
- python - ValueError: 操作数不能一起广播(不能打印折线图)
- php - Zend Engine API 版本与 XDebug 所需的版本不匹配
- rest - SharePoint REST OData 查询 - 标题有大括号,如何检索
- tensorflow - 为什么在 Google Cloud ML 上训练的 TensorFlow 模型比在本地训练的模型更准确?
- java - 使用 G1 GC 定期触发主要 GC
- sql - 用于将 SQL Server 中给定表的所有 Int16 FieldTypes 转换为 Float 的 SQL