将使用Python从Twitter获取的数据保存到文本文件?

问题描述:

你好,我目前正在做一些研究,并利用twitter API来收集信息。我写了一些代码来查询python中的特定推文,并且希望将结果保存到文本文件中,但是我的代码只返回了推文的最后一条推文返回任何人都可以告诉我如何纠正这个错误? 以下是在Python仅保存最后的鸣叫,而不是所有返回的鸣叫我的代码示例:将使用Python从Twitter获取的数据保存到文本文件?

u = urllib2.urlopen('http://search.twitter.com/search.json?geocode=29.762778,-95.383056,10.0mi&page=1&rpp=10') 
datares = json.load(u) 
pprint.pprint(datares) 
for tweet in datares['results']: 
    print tweet['text'] 
    archive=tweet['text'] 
    unicodedata.normalize('NFKD', archive).encode('ascii','ignore') 
    with codecs.open('HTXtweets.txt',mode='w', encoding='utf-8',errors='replace') as cache: 
    cache.write(archive) 
    cache.closed 

您正在通过结果在循环的每次迭代中打开文件。每次从头开始重新创建它。

你应该在循环之前打开它 - 你不需要在最后关闭它,因为当with语句结束时会自动发生。

+0

我想这是比我的建议更好的方式,因为你只打开一次文件。 – Maehler 2012-04-20 14:01:10

+0

感谢丹尼尔你的建议做到了这一招,并感谢提示不需要关闭的提示,真的很感谢洞察力! – Techsan 2012-04-20 14:11:58

这样做的原因是,你打开该文件在每次迭代写作。这将替换文件中的现有内容。尝试使用标记'a'(如附录),而不是打开文件时。

+0

非常感谢McFjodor的反馈我想这花了一双新鲜眼睛看到我的愚蠢错误,我很感激它! – Techsan 2012-04-20 14:11:07