我有一组Twitter数据,我使用Tweepy Python库访问过。但是,我很快意识到我还没有收集到所有必要的数据。我现在正在做的是从这个未清理的数据集中提取Tweet ID,将它们存储在列表中,然后迭代这个列表,将每个Tweet ID作为查询发送到Twitter的API。我想将每个返回的Twitter状态作为JSON对象/ Python dict附加到列表中。我想把它们写成平面文件或MongoDB(假设我可以及时学习后者)。我一直在尝试使用以下代码:
long_list = [id1, id2, id3, id4 .... id20000]
status_list = []
for i in long_list:
try:
tweet = api.get_status(i)
status_list.append(tweet._payload)
except:
pass
但是,上面的代码似乎已超时,我的Python解释器在执行后几乎立即变得无法响应。我认为必须有一种更有效的方法来做到这一点,但我不知道那可能是什么。任何帮助都会非常感激。
答案 0 :(得分:0)
你确定这是你的列表代码让它变慢,而不是你调用的API吗?要检查效果,您可以尝试使用profile it,还有runsnakerun
等图形工具检查代码是否在某事物中间的一种简单方法是打印一些东西, 像:
print 'getting status from tweet'
tweet = api.get_status(i)
print 'appending to my list'
status_list.append(tweet._payload)
或者您可以使用logging模块为您处理好事。
import logging
FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'
logging.basicConfig(format=FORMAT)
logging.info('getting status from tweet')