1

私が取り組んでいるゲームの subreddit r/WouldYouRather から Reddit 投稿のタイトルと投票にアクセスしようとしています。以下のコードでは、そのような 10 件の投稿にアクセスして、投稿のタイトルと、ユーザーが投稿した投票のオプションを取得しようとしました。ただし、コードを実行すると、Submissions オブジェクトの poll_data 属性が存在しないというエラーが表示されます。これは、私が知る限り、true ではありません

任意の変数名で申し訳ありませんが、これが私が持っているものです。

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)
4

1 に答える 1

0

poll_data簡単な答え: 最もホットな投稿は投票ではないため、属性がありません。最もホットな投稿は、subreddit の紹介に過ぎないと思います。

投稿に属性が含まれているかどうかを確認するようにコードを更新しました。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)

送信に投票データがあるかifどうかをチェックします。それ以外の場合は無視されます。hasattr()

于 2021-07-20T21:24:54.863 に答える