Python-Fehler: benötigen Sie mehr als zwei Werte zu entpacken. Bitte helfen Sie mir
Habe ich immer diese zwei Fehler:
File "schedule.py", line 40, in <module>
work = getalllinks(page)
File "schedule.py", line 30, in getalllinks
str_date,end_date,endoflinkdate = search_13(page)
ValueError: need more than 2 values to unpack
(mein code nimmt die links von dieser html-und setzen Sie einen link zu einer Webseite und einem Datum, das in einem Wörterbuch)
page = str('<OPTION VALUE="08/25/2013" >08/25/2013</OPTION><OPTION VALUE="09/01/2013">09/01/2013</OPTION><OPTION VALUE="09/08/2013" >09/08/2013</OPTION><OPTION VALUE="09/15/2013" >09/15/2013</OPTION><OPTION VALUE="09/22/2013" >09/22/2013</OPTION><OPTION VALUE="09/29/2013" >09/29/2013</OPTION><OPTION VALUE="10/06/2013" >10/06/2013</OPTION><OPTION VALUE="10/13/2013" >10/13/2013</OPTION><OPTION VALUE="10/20/2013">10/20/2013</OPTION><OPTIONVALUE="10/27/2013">10/27/2013</OPTION><OPTION VALUE="11/03/2013" >11/03/2013</OPTION><OPTION VALUE="11/10/2013" >11/10/2013</OPTION><OPTION VALUE="11/17/2013" >11/17/2013</OPTION><OPTION VALUE="11/24/2013" >11/24/2013</OPTION><OPTION VALUE="12/01/2013" >12/01/2013</OPTION><OPTION VALUE="12/08/2013" >12/08/2013</OPTION><OPTION VALUE="12/15/2013" >12/15/2013</OPTION>OPTION VALUE="12/22/2013" >12/22/2013</OPTION><OPTION VALUE="12/29/2013" >12/29/2013</OPTION><OPTION VALUE="01/05/2014" >01/05/2014</OPTION><OPTION VALUE="01/12/2014" >01/12/2014</OPTION><OPTION VALUE="01/19/2014" >01/19/2014</OPTION><OPTION VALUE="01/26/2014" >01/26/2014</OPTION><OPTION VALUE="02/02/2014" >02/02/2014</OPTION><OPTION VALUE="02/09/2014" >02/09/2014</OPTION><OPTION VALUE="02/16/2014" >02/16/2014</OPTION><OPTION VALUE="02/23/2014" >02/23/2014</OPTION><OPTION VALUE="03/02/2014" >03/02/2014</OPTION><OPTION VALUE="03/09/2014" >03/09/2014</OPTION><OPTION VALUE="03/16/2014" >03/16/2014</OPTION><OPTION VALUE="03/23/2014" >03/23/2014</OPTION><OPTION VALUE="03/30/2014" >03/30/2014</OPTION><OPTION VALUE="04/06/2014" >04/06/2014</OPTION><OPTION VALUE="04/13/2014" >04/13/2014</OPTION><OPTION VALUE="04/20/2014" >04/20/2014</OPTION><OPTION VALUE="04/27/2014" >04/27/2014</OPTION><OPTION VALUE="05/04/2014" >05/04/2014</OPTION><OPTION VALUE="05/11/2014" >05/11/2014</OPTION><OPTION VALUE="05/18/2014" >05/18/2014</OPTION><OPTION VALUE="05/25/2014" >05/25/2014</OPTION><OPTION VALUE="06/01/2014" >06/01/2014</OPTION><OPTION VALUE="06/08/2014" >06/08/2014</OPTION><OPTION VALUE="06/15/2014" >06/15/2014</OPTION>')
def web_link (enter_web_link):
#11%2F10%2F2013
enter_web_link = enter_web_link.replace("/","%") #00%00%0000
add_twoF = enter_web_link[:3]+"2F"+ enter_web_link[3:] #00%2F00%0000
add_twoF_everywhere = add_twoF[:8] +"2F"+add_twoF[8:]
add_twoF_everywhere = str(add_twoF_everywhere)
return add_twoF_everywhere
def search_13(page):
starter = '<OPTION VALUE="' # find the postion where this starts
start_link = page.find(starter)
starter = len(starter)
if start_link == -1:
return None, 0
start_link = start_link + starter
end_date = start_link + 10
datetext = page[start_link: end_date]
str_date = str(datetext) #this is hte actuall normal looking date dd/mm/yyyy
enter_web_link = str_date
endoflinkdate = web_link(enter_web_link)
return str_date , end_date, endoflinkdate
def getalllinks(page):
links = {}
while True:
str_date,end_date,endoflinkdate = search_13(page)
if str_date:
links[str_date] ='dont want you to have this link' + endoflinkdate
page = page[end_date:]
else:
break
return links
work = getalllinks(page)
print work
Schaute ich auf die anderen Beiträge und habe versucht, was Sie gesagt haben, aber 1. es nicht wirklich 2. Sie hat nicht funktioniert
Irgendwelche Ideen, warum ich immer diese Fehler und wie Sie zu beheben?
danke.
etwas off-topic, aber hast du überlegt, mit einer Bibliothek wie
lxml
oder pyquery
analysieren Sie Ihr Dokument, anstatt das zu tun, fehleranfällig string-manipulation?InformationsquelleAutor user2330624 | 2013-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie will, erhielt drei Werte zurück, aber wenn start_link == -1 sind Sie wieder, die nur zwei Werte; so, wenn man wieder einen mehr Wert wie NONE oder 0. Dann erhielt es zum Dritten argument.
InformationsquelleAutor Lalit Sachdeva
Sind Sie nur die Rückgabe von zwei Werten in Ihrem
if start_link == -1
Fall instart_13
. Wenn Sie sich in diesem Fall nur zwei Werte haben und das entpacken schlägt fehl. Wenn Sie zurückkehren, ein Dritter Wert gibt, möglichNone
, sollte es ok sein.InformationsquelleAutor Benno