0

大家好,我目前正在做一些研究,并正在利用 twitter api 来收集信息。我编写了一些代码来查询 python 中的特定推文,并希望将结果保存到文本文件中,但我的代码只返回返回的推文的最后一条推文,谁能告诉我如何纠正这个问题以及出了什么问题?以下是我在 Python 中的代码示例,仅保存最后一条推文,而不是所有返回的推文:

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
4

2 回答 2

1

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

你应该在循环之前打开它——你不需要在最后关闭它,因为这会在with语句完成时自动发生。

于 2012-04-20T13:58:09.683 回答
0

这样做的原因是您打开文件以在每次迭代中写入。这将替换文件中的现有内容。'a'在打开文件时尝试使用标志(如附加)。

于 2012-04-20T13:57:02.873 回答