背景:我想获得唯一的推文。根据对stackoverflow的评论,一种方法是创建一个集合
但是,当我尝试以下代码时,我得到一个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 :(得分:0)
如果没有具体的例子,很难说肯定
{ ~ } » python
>>> results = ["hi", "hello", "hi", "goodbye"]
>>> a = set()
>>> for tweet in results:
... a.add(tweet)
...
>>> print a
set(['hi', 'hello', 'goodbye'])
>>>
正如您在上面看到的那样,该集只有1" hi",您不应该尝试将整个列表作为一个整体进行哈希。
好的,根据你的意见我做了一个更小的逆向工程,我确定推文有一个你需要添加到集合中的文本字段,
所以只需将a.add(tweet)
替换为a.add(tweet.text)