gpt4 book ai didi

python - 如何将 tweepy 流 json 转储到文本文件中?

转载 作者:太空宇宙 更新时间:2023-11-04 00:25:09 27 4
gpt4 key购买 nike

您好,我看过许多关于如何执行此操作的指南和教程,但我无法使用 tweepy 将 JSON 数据存储在文本文件中。

class StreamListener(tweepy.StreamListener): 

def on_status(self, status):

print(status)

def on_error(self, status):

print status
if status == 420:

return False



if __name__ == '__main__':

stream_listener = StreamListener()
auth = tweepy.OAuthHandler(consumer_token, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = tweepy.Stream(auth, stream_listener)

我有另一个 python 文件,它应该将数据读入列表:

import pandas
import json

json_data = 'twitter_data.txt'

data_list = []
#load file
tweets_file = open(json_data, "r")
for line in tweets_file:
try:
tweet = json.loads(line) #this line causes problems
data_list.append(tweet)
except:
continue


print len(data_list)

我认为从 Twitter 接收到的数据是 JSON 格式的,我遵循的指南都这么说,但实际上它在另一个对象中。

我是否应该将所有内容都存储在一个列表中,然后将该列表转储到新的文本文件中?

最佳答案

看来您的方向是正确的。您可以修改流监听器以将推文直接写入文件。

编辑:现在以 JSON 格式写出。

#Import the necessary methods from tweepy library
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
from tweepy import API

#Variables that contains the user credentials to access Twitter API
CONSUMER_KEY = #YOUR CONSUMER KEY
CONSUMER_SECRET = #YOUR CONSUMER SECRET
ACCESS_TOKEN = #YOUR ACCESS TOKEN
ACCESS_TOKEN_SECRET = #YOUR ACCESS TOKEN SECRET

class FileWriteListener(StreamListener):

def __init__(self):
super(StreamListener, self).__init__()
self.save_file = open('tweets.json','w')
self.tweets = []

def on_data(self, tweet):
self.tweets.append(json.loads(tweet))
self.save_file.write(str(tweet))

def on_error(self, status):
print(status)
return True


auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

api = API(auth)

twitter_stream = Stream(auth, MyListener())
# Here you can filter the stream by:
# - keywords (as shown)
# - users
twitter_stream.filter(track=['hello'])

此代码将无限期运行,因此您需要在一段时间后退出进程 (Ctrl-C) 或修改代码。

然后就可以载入数据了:

import json

json_data = []
with open('tweets.json','r') as f:
json_data.append( json.loads(f.readline()) )

希望这对您有所帮助!

关于python - 如何将 tweepy 流 json 转储到文本文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47763438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com