python - 我可以用什么代替 strip() 来删除 \n、\t 和空格?
问题描述
我正在使用strip()来避免刮刀中的空格、\n 和 \t。它适用于硒,但有时使用scrapy我得到' AttributeError ':' 'Nonetype'对象没有属性'strip'
解决方案
你得到None
而不是,sting
你尝试使用None.strip()
不存在的 - 所以使用任何其他功能对你没有帮助。
你必须使用if/else
来检查得到什么:
if result is not None:
result = result.strip()
或更短
if result:
result = result.strip()
编辑:
你也可以写在一行
result = result.strip() if result else result
但它似乎不太可读
最终你可以使用try/except
try:
result = result.strip()
except AttributeError as ex:
print('ex:', ex)
但它似乎更不可读
当然你可以把这段代码放在某个函数中
def my_strip(value):
if result:
return result.strip()
return value
然后使用
result = my_strip(result)
推荐阅读
- python - 如何在 Flask 中显示错误而不是 500 页
- python - 处理嵌套字典/列表中的多个错误
- python - 用于读取/写入多个文件的异步或多进程
- reactjs - 带有样式组件的material-ui按钮,包括反应路由器链接
- c++ - 将 int 的向量格式化为字符串
- hive - nifi 1.14.0 中缺少 PutHive3Streaming 处理器
- angular - 在 Angular 中,.asObservable() 函数不返回真值
- ios - Safari IOS video.play async 被用户权限阻止
- rdf - 如何通过 SHACL 中的两条路径比较个体?
- c# - C#/Xamarin HttpClientSendAsync 在等待很长时间时不返回