我正在尝试读取看起来像这样的JSON文件。它们是推文的时间戳。当我用代码读取文件时,它作为一个大字符串出现。有没有办法让他们分开。当我使用str.split()时,它将拆分所有内容。有没有我可以将其装入或取出以制造此易用物品的装置?
"Sat Aug 06 23:54:24 +0000 2016""Sat Aug 06 23:54:24 +0000 2016""Sat Aug 06 23:54:24 +0000 2016""Sat Aug 06 23:54:24 +0000 2016"
这是我在读它的方式
q = 'Trump'
twitter_stream = twitter.TwitterStream(auth=twitter_api.auth)
stream = twitter_stream.statuses.filter(track=q)
for tweet in stream:
print (type(tweet))
tweet = tweet['created_at']
with open('dates.json', 'a') as outfile:
json.dump(tweet, outfile, indent=4)
这是我目前正在尝试将其发布的方式
with open('dates.json', 'rb') as f:
data = f.readlines()
我希望它们按日期分开,所以我可以隐蔽它们以制作时间序列图
编辑/更新:现在我有了这个,但是流只是连续收集推文而没有停止。我如何停止收集推文并将JSON数据转储到文件中。手动还是自动
q = 'Trump'
twitter_stream = twitter.TwitterStream(auth=twitter_api.auth)
stream = twitter_stream.statuses.filter(track=q)
dates = [tweet['created_at'] for tweet in stream]
with open('dates.json', 'a') as outfile:
json.dump(dates, outfile, indent=4)
将推文日期收集到一个列表中,然后转储一次:
dates = [tweet['created_at'] for tweet in stream]
with open('dates.json', 'a') as outfile:
json.dump(dates, outfile, indent=4)
有了这个,我该如何停止播放并转储到文件中。由于它是逐个推文转储之前,我只需重新启动外壳程序即可。
我认为您应该将理解范围扩展到常规循环,然后将其放入try/finally
:
dates = []
try:
for tweet in stream:
dates.append(tweet['created_at'])
finally:
with open('dates.json', 'a') as outfile:
json.dump(dates, outfile, indent=4)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句