2017-10-15 62 views
1

我正在編寫一個程序,它會遍歷包含藝術家名字的字符串列表,並將它與Reddit提交中的所有註釋進行比較。它發現一場比賽後停止或根本不起作用(即使是簡單的測試字符串),你能指出我的錯誤嗎?包括除認證之外的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的結果。我的猜測是,因爲這首先讓我失望了,但在第一次之後,我花了一段時間纔得到第二個結果。這可能是因爲你認爲所有結果都被打印出來而提早終止程序?

這裏直接複製粘貼:

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

啊我看到,filter()的第一個參數需要返回True或False的函數,然後將其應用於列表,即第二個參數。函數的輸出是使函數返回True的元素列表。 – PeskyPotato