syntaxError: ‘continue’ niet goed in lus

Ik worstel al een tijdje met deze fout en er lijken verschillende meningen te zijn over waarom de tolk klaagt over het ‘doorgaan’. Dus ik zou de foutieve code hieronder willen geven.

import tweepy
import time
def writeHandlesToFile():
    file = open("dataFile.txt","w")
    try:
        list = tweepy.Cursor(tweepy.api.followers,screen_name='someHandle',).items(100000)
        print "cursor executed"
        for item in list:
            file.write(item.screen_name+"\n")
    except tweepy.error.TweepError as e:
        print "In the except method"
        print e
        time.sleep(3600)
        continue

De reden dat ik specifiek ben over het opnemen van doorgaan aan het einde, is omdat ik zou willen dat het programma de uitvoering bovenaan herstart vanaf waar het was gebleven na de slaapstand om de programmastatus te behouden. Ik heb de slaap nodig om te voldoen aan de twitter-api-snelheidslimieten waarin de api je alleen toestaat om elk uur een bepaald aantal verzoeken te doen.
Dus iedereen die mijn fout naïef of anderszins zou kunnen zien, wijs erop of geef me een alternatieve implementatie zonder het gebruik van de continue verklaring.

BTW Ik heb geen tabs en spaties gemengd, zoals in een ander bericht werd gesuggereerd.
Bij voorbaat dank voor uw hulp.


Antwoord 1, autoriteit 100%

continueis alleen toegestaan binnen een forof whilelus. U kunt uw functie eenvoudig herstructureren om te herhalen tot een geldig verzoek.

def writeHandlesToFile():
    while True:
        with open("dataFile.txt","w") as f:
            try:
                lst = tweepy.Cursor(tweepy.api.followers,screen_name='someHandle',).items(100000)
                print "cursor executed"
                for item in lst:
                    f.write(item.screen_name+"\n")
                break
            except tweepy.error.TweepError as e:
                print "In the except method"
                print e
                time.sleep(3600)

Antwoord 2, autoriteit 10%

Het probleem kan liggen in de manier waarop u doorgaan

continue mag alleen syntactisch worden genest in een for- of while-lus,
maar niet genest in een functie- of klassedefinitie of een definitief statement
binnen die lus.6.1Het gaat verder met de volgende cyclus van de dichtstbijzijnde
omsluitende lus.

Other episodes