PRAW:评论提交者的用户名
Posted
技术标签:
【中文标题】PRAW:评论提交者的用户名【英文标题】:PRAW: Comment Submitter's Username 【发布时间】:2014-01-16 08:25:29 【问题描述】:我正在开发一个 reddit 机器人,它需要知道哪个用户提交了评论。
根据 PRAW API 包装文档,没有特定方法可以获取 Comment 对象作者的用户名。理想情况下,我可以直接取回用户名。如果这不可能,有没有办法获取作者的全名,然后将其转换为用户名?
【问题讨论】:
【参考方案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))
【讨论】:
以上是关于PRAW:评论提交者的用户名的主要内容,如果未能解决你的问题,请参考以下文章