Python 当找不到元素时,如何用字符串或数值填充异常块中的列表?

Python 当找不到元素时,如何用字符串或数值填充异常块中的列表?,python,selenium,try-except,Python,Selenium,Try Except,我正在遍历一些web上的数据,并试图将结果放入两个列表中的一个。在这种情况下,下面使用的拆分会引发异常以跳过记录,因为条目中基本上没有“at”。如果我为10条记录运行代码,这是其中一条记录的情况,那么a_列表中有10条记录,b_列表中有9条记录。我想保持所有内容正确匹配,并在两个列表中保留10条记录,但在异常为真的列表中输入一个空白或一些字符串,如“null”或0。在这之后,我希望脚本继续做它的事情。有没有一个简单的方法来实现这一点 a_list = []; b_list = []; f

我正在遍历一些web上的数据,并试图将结果放入两个列表中的一个。在这种情况下,下面使用的拆分会引发异常以跳过记录,因为条目中基本上没有“at”。如果我为10条记录运行代码,这是其中一条记录的情况,那么a_列表中有10条记录,b_列表中有9条记录。我想保持所有内容正确匹配,并在两个列表中保留10条记录,但在异常为真的列表中输入一个空白或一些字符串,如“null”或0。在这之后,我希望脚本继续做它的事情。有没有一个简单的方法来实现这一点

a_list = [];    b_list = [];

for i in range(1,11):
    try:
        a = driver.find_element_by_xpath('abc').text.split(' at ')[0]
        b = driver.find_element_by_xpath('abc').text.split(' at ')[1]
        a_list.append(a)
        b_list.append(b)
    except: 
        continue
    i +=1

您只需在
块内追加,但
块除外

a_list = [];    b_list = [];

for i in range(1,11):
    try:
        a = driver.find_element_by_xpath('abc').text.split(' at ')[0]
        b = driver.find_element_by_xpath('abc').text.split(' at ')[1]
        a_list.append(a)
        b_list.append(b)
    except: 
        a_list.append(None)
        b_list.append(None)

此外,不需要增加循环变量
for
循环为您执行此操作

您只需在
块中追加,除了

a_list = [];    b_list = [];

for i in range(1,11):
    try:
        a = driver.find_element_by_xpath('abc').text.split(' at ')[0]
        b = driver.find_element_by_xpath('abc').text.split(' at ')[1]
        a_list.append(a)
        b_list.append(b)
    except: 
        a_list.append(None)
        b_list.append(None)
此外,不需要增加循环变量<代码>for
循环为您实现这一点

尝试以下方法:

for i in range(1, 11):
    try:
        element_splitted = driver.find_element_by_xpath('abc').text.split(' at ')
    except:   # No element found
        a_list.append(None)
        b_list.append(None)
        continue

    if len(element_splitted) > 1:  # it has ' at '
        a_list.append(element_splitted[0])
        b_list.append(element_splitted[1])
    else:
        a_list.append(None)
        b_list.append(None)
我以前没有用过硒,但我想这就是它的工作原理。首先我检查了它,发现了元素。然后我检查了它是否在“
处有

补充说明:

无需增加
i

不要使用
驱动程序。通过xpath('abc').text.split('at')两次查找\u元素

不要使用像我这样的广泛异常处理程序-->检查文档中是否存在可能引发的特定异常。

尝试以下方法:

for i in range(1, 11):
    try:
        element_splitted = driver.find_element_by_xpath('abc').text.split(' at ')
    except:   # No element found
        a_list.append(None)
        b_list.append(None)
        continue

    if len(element_splitted) > 1:  # it has ' at '
        a_list.append(element_splitted[0])
        b_list.append(element_splitted[1])
    else:
        a_list.append(None)
        b_list.append(None)
我以前没有用过硒,但我想这就是它的工作原理。首先我检查了它,发现了元素。然后我检查了它是否在“
处有

补充说明:

无需增加
i

不要使用
驱动程序。通过xpath('abc').text.split('at')两次查找\u元素


不要使用像我这样的广泛异常处理程序-->检查文档中是否有可能引发的特定异常。

这就成功了。我不知道为什么我不想试试。非常感谢。这就成功了。我不知道为什么我不想试试。非常感谢。