首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Praw Reddit中限制一级评论?

如何在Praw Reddit中限制一级评论?
EN

Stack Overflow用户
提问于 2020-03-11 01:56:09
回答 1查看 346关注 0票数 1

是否可以限制replace_more函数返回的一级注释?

代码语言:javascript
复制
submission.comments.replace_more(limit=1)

或者从第一级删除所有MoreComments对象?我的意思是,我想限制评论树的height,并获得最大的width (从有限的第一级评论中获得所有评论)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 10:26:12

在到达每个MoreComments对象时,只需替换它,而不是使用replace_more。这将防止您替换任何不在顶层的MoreComments对象。

下面是一个函数,它将遍历顶级注释,在遇到每个MoreComments时将其替换。这是受example code from the PRAW documentation的启发

代码语言:javascript
复制
from praw.models import MoreComments

def iter_top_level(comments):
    for top_level_comment in comments:
        if isinstance(top_level_comment, MoreComments):
            yield from iter_top_level(top_level_comment.comments())
        else:
            yield top_level_comment

这个生成器的工作方式是从提交中生成顶级注释,但当它遇到MoreComments对象时,它会加载这些注释并递归调用自己。递归调用是必要的,因为在大型线程中,每个MoreComments对象在末尾都包含另一个顶级MoreComments对象。

下面是一个如何使用它的示例:

代码语言:javascript
复制
submission = reddit.submission('fgi5bd')
for comment in iter_top_level(submission.comments): 
    print(comment.author) 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60623349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档