2016-12-06 9 views
3

Я пытаюсь получить последние 1000 комментариев от пользователя, так как 1000 - это предел Reddit.Получить комментарии пользователя Reddit с помощью PRAW, вызывающего TypeError: объект «SubListing» не является вызываемой ошибкой

Я следовал примеру кода here и модифицировал несколько вызовов обновленного API. Такие, как user.get_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) и он правильно отображает.

Любые идеи, что я делаю неправильно?

+0

Вы не должны использовать формат кода для журнала ошибок, [мета-вопрос об этом] (http://meta.stackoverflow.com/questions/276966/quote-formatting-messing-up-how-to-handle-format -of ошибок бревна). – Stargateur

+0

@Stargateur Спасибо за улов. Отредактировал вопрос в соответствии с мета-сообщением. – TheBeginningEnd

+0

Вы используете PRAW 3 или 4? Я считаю, что API, возможно, немного изменился с этого примера. – Aurora0001

ответ

4

Согласно документации, comments является атрибут из Redditor модели в Praw 4, а не функция. Поэтому вызов .comments(limit=None) является недопустимым синтаксисом, потому что .comments не является функцией. Вместо этого необходимо указать порядок сортировки в предложение, как это так, потому что SubListing объекты (что user.comments есть) наследоваться от BaseListingMixin:

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

Следует признать, что в документации по Praw 4 очень неясно, и вы, вероятно, найти лучшую документацию, выполнив поиск через код напрямую.

+0

Это вызывает ту же ошибку. – TheBeginningEnd

+0

Это странно, свойство [определенно существует] (https://github.com/praw-dev/praw/blob/praw4/praw/models/listing/mixins/redditor.py#L13). Помогает ли 'user = r.redditor ('REDDITUSERNAME')' помочь? (вместо 'get_redditor') – Aurora0001

+1

Извините, что забыл изменить это в коде. Теперь это просто r.redditor, а не r.get_redditor, и именно это я использую. Я только что скопировал и вставил блок кода, прежде чем исправлять эту ошибку. Теперь я редактировал код в вопросе. – TheBeginningEnd