阅读:33124回复:0
python index方法 :报ValueError: substring not found
if title_node is None:
res_data = {} elif title_node.get_text().index('error') or title_node.get_text().index('错误') or title_node.get_text().index('错'): res_data['url'] = page_url res_data['title'] = title_node.get_text() 在执行上述代码时,总报: ValueError: substring not found 还以为是代码出了问题,最后查阅文档: “Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。” 查了文档才发现python中的index方法,当没有找到指定的字符串时,不会像其它语言一样返回,-1,而是抛出一个ValueError的异常。(PS: 看来惯性思维也有不好的) 解决方案:可以使用python提供的find的方法,用find 去替代index. 请查阅 https://docs.python.org/2/library/string.html#string.index 参考:https://stackoverflow.com/questions/22747092/valueerror-substring-not-found-what-am-i-doing-wrong http://www.runoob.com/python/att-string-index.html |
|