当第一个语句失败时运行另一个if语句

时间:2014-02-02 01:49:02

标签: python excel

我有一些代码可以解析一些html行并提取一个数字(字符串),并且它全部导出到excel表。在某些情况下,没有数字,因为脚本在寻找解析html代码时被定向到错误的行,因此它在哪里寻找拆分行不存在。然后,这只会将excel电子表格中的单元格留空。

我试图让脚本检查html代码中的另一行,如果第一行给出的结果为None,则解析。这就是我正在做的事情,但它没有任何效果:

if position0 > 0 :
        self.high0 = lines[line_number + 4].split('&')[0].split('>')[-1]
        self.low1 = lines[line_number + 18].split('&')[0].split('>')[-1]
        if self.low1 == None:
               self.low1 = lines[line_number + 17].split('&')[0].split('>')[-1]

关于如何实现这一目标的任何想法?我一般都不擅长编程,我确信有一些我很想念的东西很简单。谢谢!

2 个答案:

答案 0 :(得分:2)

self.low1永远不会是None,因为它是一个字符串(分割到'>'后的最后一个元素)。您想要与''

进行比较
if self.low1 == '':

或者只是比较它的真实性:

if not self.low1:

答案 1 :(得分:1)

str.split()总是返回一个字符串,即使拆分失败,因此self.low1 永远不会设置为None

相反,我怀疑你得到一个空字符串:

if not self.low1:

对于空字符串和True都是None

请注意,通常情况下,您应该使用is None而不是== None,因为None是一个单例(在Python程序的生命周期中只存在一个副本)。