使用PRAW获取Reddit用户注释导致TypeError:' SubListing' object不可调用错误

时间:2016-12-06 15:27:11

标签: python praw

我试图从用户那里检索最后1000条评论,因为1000是Reddit限制。

我遵循了代码示例here,并修改了一些针对更新的API的调用。比如user.get_comments现在似乎只是user.comments。

这是我运行的代码。

import praw

my_user_agent = 'USERAGENT'
my_client_id = 'CLIENTID'
my_client_secret = 'SECRET'

r = praw.Reddit(user_agent=my_user_agent,
                     client_id=my_client_id,
                     client_secret=my_client_secret)

user = r.redditor('REDDITUSERNAME')

for comment in user.comments(limit=None):
    print comment.body 

但是每次在最后一行都会出现错误。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'SubListing' object is not callable

我已经连接到API并且有一个活动连接,因为我可以打印(user.comment_karma)并且它正确显示。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:4)

根据文档,comments是PRAW 4中Redditor模型的属性,而不是函数。因此,调用.comments(limit=None)语法无效,因为.comments不是函数。相反,您必须指定列表排序顺序,因为SubListing个对象(user.comments是)继承自BaseListingMixin

for comment in user.comments.new():
    print(comment.body)

不可否认,PRAW 4的文档非常不清楚,您可能会通过直接搜索代码找到最好的文档。