Python erreur: besoin de plus de deux valeurs pour décompresser. Merci de m'aider
J'ai ces deux erreurs:
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
(mon code prend les liens de ce html et mettre le lien vers un site web et une date dans un dictionnaire)
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
J'ai regardé les autres posts et essayé ce qu'ils ont dit mais 1. il n'a pas vraiment d'appliquer 2. ils n'ont pas de travail
Toutes les Idées de pourquoi j'obtiens ces erreurs et comment les corriger?
merci.
- un peu hors-sujet, mais avez-vous envisagé d'utiliser une bibliothèque comme
lxml
oupyquery
pour analyser votre document au lieu de faire des erreurs de manipulation de chaîne?
Vous devez vous connecter pour publier un commentaire.
Vous souhaite a reçu trois valeurs en retour, mais si start_link == -1 sont de retour seulement deux valeurs; de sorte que si vous retournez un plus de valeur, il n'a rien de pareil ou 0. Puis il a reçu sa troisième argument.
Vous êtes seulement de retourner deux valeurs dans votre
if start_link == -1
cas dansstart_13
. Lorsque cela arrive, vous ne disposez que de deux valeurs et l'décompresser échoue. Si vous revenez d'un tiers de valeur, possibleNone
, il devrait être ok.