python - Comment ajouter un contrôle de temps ou de vitesse lors du parcours d'une liste?
天蓬老师
天蓬老师 2017-06-14 10:53:10
0
2
752
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. ?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(2)
typecho

Après chaque itération, ajoutez un temps de sommeil

time.sleep(1) # 睡眠1秒

C'est-à-dire que votre code peut être ajusté pour :

for day in dayday:
    ...(访问处理代码)
    time.sleep(1)
    
学习ing

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é

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal