2017-10-15 7 views
1

私は、アーティストの名前を含む文字列のリストを調べ、それをRedditの投稿のすべてのコメントと比較するプログラムを作成しています。 1つのマッチを見つけた後に停止するか、まったく動作しません(単純なテスト文字列でも)、私にバグを指摘できますか?認証を除いたReddit部分を含む。サブストリングのすべてのコメントをループする

submission = reddit.submission(id='75lnoo') # Topic about Eminem, lots of mentions of him 
submission.comments.replace_more(limit=0) # Stores all the comments 
comments = submission.comments.list() 
artists_list = ['Eminem', 'Drake'] # Sample list 
for comment in comments: 
    for artist in artists_list: 
     if artist.lower() in comment.body.lower(): 
      print(comment.permalink() + ' - ' + artist) 

/R /音楽/コメント/ 75lnoo/eminem_rips_donald_trump_in_bet_hip_hop_awards/do894hp試合がたくさんあるはず際に一つだけを印刷するだろう - エミネムだけ走った

+1

インデントを修正してください。 –

+0

インデントを固定しました。 –

答えて

1

コードローカル私のマシンではEminemの結果が多く、Drakeの結果はありませんでした。これが最初から私を捨てて以来、私の推測は最初の後に2番目の結果を得るのにしばらく時間がかかりました。すべての結果が印刷されていると思ったら早期にプログラムを終了させることができますか?ここでは、直接コピー&ペースト

import praw 

reddit = praw.Reddit(client_id = '', 
       client_secret= '', 
       user_agent= '', 
       username = '', 
       password = '') 

submission = reddit.submission(id='75lnoo') 
submission.comments.replace_more(limit=0) # Stores all the comments 
comments = submission.comments.list() 
artists_list = ['Eminem', 'Drake'] # Sample list 
print(artists_list) 
for comment in comments: 
for artist in artists_list: 
    if artist.lower() in comment.body.lower(): 
     print(comment.permalink() + ' - ' + artist) 
+0

ああ、私のコードの問題は、アーティストリストの空リストを 'artists_list = filter(None、artists_list)'でフィルタリングしようとした部分だと思います。それらをフィルタリングする別の方法です。 –

+0

私は、フィルタ()の最初のパラメータはTrueまたはFalseを返す関数を必要とし、それがリスト、つまり2番目のパラメータに適用されることが必要です。関数の出力は、関数をTrueに戻す要素のリストです。 – PeskyPotato

関連する問題