ValueError:在我的代码中解压缩(预期为2)的值太多了

时间:2016-11-12 02:49:06

标签: python python-3.x slice

在这一行url, endpos = get_next_target(page)中,它表示ValueError:在终端中解包(预期为2)的值太多。 我试图拆分它,但后来意识到函数get_next_target输出一个列表,这样就行不通了。

def get_all_links(page): 
    links = [] 
    while True: 
        url, endpos = get_next_target(page) 
    if url: 
        links.append(url) 
        page = page[endpos:] 
    else: 
        break 
    return links 

2 个答案:

答案 0 :(得分:2)

如果get_next_target(page)返回一个列表,那么你可以试试这个:

url, *endpos = get_next_target(page)

或者:

*url, endpos = get_next_target(page)

那样*endpos*url将成为一个列表。例如,如果get_next_target(page)返回[a,b,c,d],则url将为aendpos将为[b, c, d]

答案 1 :(得分:1)

你说过:get_next_target(页面)正在返回一个列表,它试图将该列表粘贴到url和endpos - 2个变量中。因为它告诉你“太多”,这意味着列表有超过2个元素。