Maison  >  Questions et réponses  >  le corps du texte

python - Comment ajouter un contrôle de temps ou de vitesse lors du parcours d'une liste?

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. ?

天蓬老师天蓬老师2683 Il y a quelques jours712

répondre à tous(2)je répondrai

  • typecho

    typecho2017-06-14 10:55:10

    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)
        

    répondre
    0
  • 学习ing

    学习ing2017-06-14 10:55:10

    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é

    .

    répondre
    0
  • Annulerrépondre