def dateRange(start, end, step=1, format="%Y-%m-%d"):
strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
days = (strptime(end, format) - strptime(start, format)).days
return [strftime(strptime(start, format) + datetime.timedelta(i), format) for i in xrange(0, days, step)]
ef weekend():
try:
dayday = dateRange(st, ed)
for day in dayday:
d =day.replace('-','')
date = d
server_url = "http://www.easybots.cn/api/holiday.php?d="
vop_url_request = urllib2.Request(server_url + date)
vop_response = urllib2.urlopen(vop_url_request)
vop_data = json.loads(vop_response.read())
if vop_data[date] == '1' or vop_data[date] == '2':
dayday.remove(day)
return dayday
except:
dayday = dateRange(st, ed)
return dayday
Il existe une telle fonction de week-end pour demander du contenu, mais certains contenus seront manquants à chaque exécution. On soupçonne qu'il s'agit d'un problème avec la vitesse du réseau. Comment limiter la fréquence de traversée ou d'accès une fois en quelques secondes. ?
Après chaque itération, ajoutez un temps de sommeil
C'est-à-dire que votre code peut être ajusté pour :
J'ai trouvé le problème. L'opération de suppression sur la liste d'origine pendant le parcours modifiera la longueur de la liste, ce qui entraînera un mauvais alignement de la liste. Le résultat final n'est pas le résultat souhaité
.