属性错误:'Submission'对象在 PRAW 中没有属性'poll_data'



我正试图从Reddit r/WouldYouRather子网站访问我正在开发的一款游戏的Reddit帖子的标题和民意调查。在下面的代码中,我尝试访问了10篇这样的帖子,获得了提交的标题以及用户提供的民意调查选项。然而,当我运行代码时,我收到一个错误,说Submissions对象的poll_data属性不存在,据我所知,这不是真的。

请原谅我随意使用变量名,但以下是我所拥有的。

import os
import praw
reddit = praw.Reddit(client_id = 'H'],
client_secret = 'H'], 
username = 'H'], 
password = 'H'], 
user_agent = 'H')
lmao = []
lmaolmao = []
sub = reddit.subreddit("wouldyourather")
hotstuff = sub.hot(limit = 10)

for submission in hotstuff:
lmao.append(submission.title)
lmaolmao.append(submission.poll_data.options)
print(lmao)
print(lmaolmao)

当我取出任何关于poll_data的代码时,帖子标题列表打印得很好,所以我不确定为什么这个代码会出错。为什么会发生这种情况?

编辑:

我尽可能简化了代码,但仍然得到了相同的错误消息:

import os
import praw
reddit = praw.Reddit(client_id = os.environ['client_id'],
client_secret = os.environ['client_secret'], 
username = os.environ['username'], 
password = os.environ['password'], 
user_agent = os.environ['user_agent'])
sub = reddit.subreddit("wouldyourather").hot(limit = 1)
for submission in sub:
print(submission.poll_data.options)

简单答案:最热门的帖子不是民意调查,因此它没有poll_data属性。我认为最热门的帖子只是reddit子版块的介绍。

我更新了你的代码,以检查帖子是否具有属性poll_data,它将所有带有民意调查数据的帖子插入到你的列表中:

lmao = []
lmaolmao = []
sub = reddit.subreddit("wouldyourather")
hotstuff = sub.hot(limit = 10)
for submission in hotstuff:
lmao.append(submission.title)
if hasattr(submission, 'poll_data'):
lmaolmao.append(submission.poll_data.options)
print(lmao)
print(lmaolmao)

ifhasattr()检查提交是否具有轮询数据,否则它将被忽略。

最新更新