Вложенные циклы For прекращаются (новичок) - PullRequest
0 голосов
/ 05 августа 2020

Я использую пару вложенных циклов For в сценарии, который я написал для очистки API Reddit, но сценарий, кажется, останавливается сразу после очистки одного сообщения. Он проходит через l oop, но по какой-то причине не повторяет процесс. Кто-нибудь знает, что здесь происходит?

for i in subreddit:
    submission = reddit.submission(id=i.id)
    comments = submission.comments
    ts = datetime.utcfromtimestamp(i.created_utc).strftime('%Y-%m-%d %H:%M:%S')
    tree = ('Comment section:')
    for comment in comments:
        body = ('----\nComment:' + comment.body + '\n----')
        tree = tree + body
        if len(comment.replies) > 0:
            for reply in comment.replies:
                bodyrply = ('\nREPLY: \n' + reply.body + '----')
                tree = tree + bodyrply
        else:
            tree = tree
    continue
    filewriter.writerow({'title': i.title,'author': i.author,
                         'original content': i.is_original_content,
                         'selfpost': i.is_self,
                         'time created': ts,
                         'stickied': i.stickied,
                         'locked': i.locked,
                         'NSFW': i.over_18,
                         'selftext': i.selftext,
                         'comment forest': tree,
                         'number of comments': i.num_comments,
                         'score': i.score,
                         'upvote ratio': i.upvote_ratio,
                         'permalink': i.permalink,
                         'url': i.url})

1 Ответ

0 голосов
/ 05 августа 2020

Это не окончательный ответ, но он может помочь сузить проблему. Добавьте в код несколько проверок, чтобы подтвердить, что исходные данные соответствуют вашим ожиданиям.

print("len sr =", len(subreddit))  # is this a valid list greater than 1 ?
for i in subreddit:
    print("i =", i)  # what object are you dealing with ?
    submission = reddit.submission(id=i.id)
    comments = submission.comments
    ts = datetime.utcfromtimestamp(i.created_utc).strftime('%Y-%m-%d %H:%M:%S')
    tree = ('Comment section:')
    print("len cmts =", len(comments))  # are there any comments ?
    for comment in comments:
        body = ('----\nComment:' + comment.body + '\n----')
        tree = tree + body
        if len(comment.replies) > 0:
            for reply in comment.replies:
                bodyrply = ('\nREPLY: \n' + reply.body + '----')
                tree = tree + bodyrply
        else:
            pass    # tree = tree
    print("i2 =", i)   # make sure the code got this far
    continue
...