使用Scrapy嵌套for如果为空值则循环停止

wlzqhblo  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(135)

我使用了一个嵌套的for循环来获取Weekdays的数据。如果其中一天为“null”,那么循环将在该天停止,并且不会获取其余的日期。我认为我需要在某个时候使用一些“if”语句,但是在多次尝试之后,它仍然不起作用。
下面是我在尝试if语句之前使用的代码:

try:

        Sunday = []
        Monday = []
        Tuesday = []
        Wednesday = []
        Thursday = []
        Friday = []
        Saturday = []

        for i in data[1][2]:
            for j in i[1]:
                for x in str(j[1]).split(', '):
                    if i[0] == 7:
                        Sunday.append(x)
                    elif i[0] == 1:
                        Monday.append(x)  
                    elif i[0] == 2:
                        Tuesday.append(x)
                    elif i[0] == 3:
                        Wednesday.append(x)  
                    elif i[0] == 4:
                        Thursday.append(x)  
                    elif i[0] == 5:
                        Friday.append(x)  
                    elif i[0] == 6:
                        Saturday.append(x)                                 

    except:

如果i[1]值在工作日的任何一天为空,则scraper不会获取当天或之后的天数。我尝试使用if语句来检查j是否为空并继续,但仍然不起作用。

rsl1atfo

rsl1atfo1#

在访问第二个元素之前检查i的长度了吗?也许你可以添加一个如下的保护:

for i in data[1][2]:
    if len(i) > 1 and i[0] and i[1]:
        for j in i[1]:
            # ...

可以对数据进行相同考虑。

1u4esq0p

1u4esq0p2#

我在列表解析中使用了嵌套的for循环。

try:
                Sunday = [x for i in data[1][2] for j in str(i[1])]
            except:
                Sunday = []
            try:        
                Monday = [x for i in data[1][3] for j in str(i[1])]
            except:
                Monday = []
            .........

相关问题