【问题标题】:PRAW: Comment Submitter's UsernamePRAW:评论提交者的用户名
【发布时间】:2014-01-16 08:25:29
【问题描述】:

我正在开发一个 reddit 机器人,它需要知道哪个用户提交了评论。

根据 PRAW API 包装文档,没有特定方法可以获取 Comment 对象作者的用户名。理想情况下,我可以直接取回用户名。如果这不可能,有没有办法获取作者的全名,然后将其转换为用户名?

【问题讨论】:

    标签: python api reddit


    【解决方案1】:

    我是 PRAW 的维护者。它在哪里说您无法获得Comment 对象作者的用户名?因为这是不正确的,需要修正。

    无论如何,Comment 有一个author 属性,它是作者的Redditor 实例。

    import praw
    
    r = praw.Reddit(UNIQUE_AND_DESCRIPTIVE_USERAGENT)
    submission = r.get_submission("http://www.reddit.com/r/redditdev/comments/16m0uu/praw_20_is_coming_release_in_2_days/")
    comment = submission.comments[0]
    author = comment.author  # This returns a ``Redditor`` object.
    print(author.name)  # The username
    

    【讨论】:

    • 我使用的是 readthedocs.org 文档,其中没有提到如何获取评论的作者。我还检查了 github 源代码(有点简短),在那里找不到任何东西。谢谢回复!我在这个项目上已经停滞了一段时间了。
    • 是的,代码概述部分只显示了类及其方法,但没有显示每个类的属性。
    • 我是另一个遇到问题的人。我找不到任何关于 PRAW 的类属性的文档。对于使用互联网作为资源的人(几乎所有人)来说,缺少属性文档表明它不存在。
    • PRAW 中的类属性是根据 Reddit 的返回动态创建的,然后转换为适当的类型。这允许 PRAW 在新属性可用时立即使用它们,无需更新。这是一个非常漂亮的功能,但这意味着通过文档字符串创建静态资源最终会变得不准确和误导。这就是为什么文档显示并建议使用标准 python 自省来查看可用属性的原因。 praw.readthedocs.org/en/v2.1.16/pages/writing_a_bot.html
    【解决方案2】:

    由于声誉不足,无法发表评论。 @Humus 在他的评论中提到,PRAW readthedocs.org 文档中没有提到它。有一个简单的解决方法。我们可以使用dir(object_name) 来获取该对象的属性列表。那以后就只是猜谜游戏了。

    编辑: 你也可以使用 pprint(vars(object_name))

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 2021-01-27
      • 2021-12-10
      相关资源
      最近更新 更多