2017-07-27 11 views
0

背景:私はユニークなつぶやきを取得したいです。 stackoverflowのコメントによると、これを行う方法の1つは、セットを作成することですユニークなつぶやきを収集するREST API

しかし、次のコードを試してみると、私はTypeError:Unhashableを取得します。ここにいくつかの情報が見つかりましたTypeError : Unhashable type。私はMongoDBの重複を削除することもできますが、保存する前にそれを行うときれいです。

質問:独自のツイートのみを収集する方法はありますか?

results = [] 
pages = 2 
counts = 100 

while True:   
    for tweet in tweepy.Cursor(api.search, q = keywords, since="2017-07-21", until="2017-07-27", count = counts, lang = language,monitor_rate_limit=True, wait_on_rate_limit=True).pages(pages): 
     results.extend(tweet) 


    results = set(results) 
+0

a.add(tweet)を置き換えます競合の例がないと言うのは難しいですが、リストをハッシュしようとしていますが、これは許可されていません。代わりに、結果のツイートのために 'a = set()のリストにすべてのメンバーを入れるようにしてください:a.add(tweet)' –

+0

結果にツイートのために 'a = set()というコードを試しました。 (tweet) 'を追加しましたが、エラーが表示されます:無効な構文 –

+0

行を直接貼り付けた場合、正しいインデントで別の行に試しましたか? また、問題の解決に役立つデバッグ中に発生したエラーをお知らせください。 –

答えて

0

あなたがセットの上に見ることができるよう、具体的な例

{ ~ } » python                                
>>> results = ["hi", "hello", "hi", "goodbye"] 
>>> a = set() 
>>> for tweet in results: 
...  a.add(tweet) 
... 
>>> print a 
set(['hi', 'hello', 'goodbye']) 
>>> 

なし確かに言うことは困難でいる場合のみ1「こんにちは」、あなたにリスト全体をハッシュしようとするべきではありません全体。

[OK]を、私はlittlerリバースエンジニアリングをしたあなたのコメントのとおり、私はつぶやきは、あなたがセットに追加する必要があるテキストフィールドを持っていることを決定し、

ので、ちょうどそれがあるa.add(tweet.text)

+0

このご意見ありがとうございます。私は適切な構文とインデントであなたの例ごとのコードを試しました。しかし、私は上記の 'tweepy.Cursor'コードを使用して、次のエラーを取得します。 'TypeError:unhashable type: 'Status'' –

+0

私の編集 –

+0

がうまくいきました。ご協力ありがとうございました –

関連する問題