【发布时间】:2014-03-31 15:04:48
【问题描述】:
我有一组使用 Tweepy Python 库访问的 Twitter 数据。然而,我很快意识到我没有收集到所有必要的数据。我现在正在做的是从这个未清理的数据集中提取推文 ID,将它们存储在一个列表中,然后遍历这个列表以将每个推文 ID 作为查询发送到 Twitter 的 API。我想将每个返回的 Twitter 状态作为 JSON 对象/Python 字典附加到列表中。然后我想把这些写到一个平面文件或 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 解释器在执行后几乎立即变得无响应。我认为必须有一种更有效的方法来做到这一点,但我不知道那可能是什么。任何帮助将不胜感激。
【问题讨论】:
-
在 python 中遍历列表非常有效。我怀疑您的问题出在
api.get_status(i)而不是列表迭代中。 -
您是否尝试过将调试消息放入其中以查看进展情况?类似
for idx, i in enumerate(long_list): print("Querying {:d} of {:d}".format(idx + 1, len(long_list))")... -
@JLLagrange 我尝试在
print行之后添加一个简单的print语句,但控制台没有任何内容。 -
你能手动获取一个状态,看看需要多长时间?
-
我想知道您是否达到了对 Twitter 的 api 调用的限制?
标签: python list optimization iteration tweepy