繁体   English   中英

Twitter 流格式 JSON 输出

[英]Twitter streaming formatting JSON Output

也许你可以帮助我。 以下 Python 代码检索 Twitter Streaming 数据并在获得 1000 条推文数据时停止。 它工作但返回由制表符分隔的字段“created_at、screen_name 和 text”。 相反,我想以 JSON 格式获取数据。 如何设置代码以获取 JSON 格式的数据?

# Import the necessary package to process data in JSON format
try:
    import json
except ImportError:
    import simplejson as json

# Import the necessary methods from "twitter" library
from twitter import Twitter, OAuth, TwitterHTTPError, TwitterStream

# Variables that contains the user credentials to access Twitter API


CONSUMER_KEY = '7pWHWtYlXM9ayJfUKv2F8v84B'
CONSUMER_SECRET = 'Dfcx10Px77Ggn0qGbCHc4TZC7M2IHsXpqk9CaGiCLzcr9VMX5n'
ACCESS_TOKEN = '245080367-zuLrIbxblOnocashgku9dsmDKgy3R7uU0VCTIRDx'
ACCESS_SECRET = 'wCx5ufD9Zft46hVjieLdv0af7p9DxUTsPgge9Zm2qelR9'

oauth = OAuth(ACCESS_TOKEN, ACCESS_SECRET, CONSUMER_KEY, CONSUMER_SECRET)

# Initiate the connection to Twitter Streaming API
twitter_stream = TwitterStream(auth=oauth)

# Get a sample of the public data following through Twitter
#iterator = twitter_stream.statuses.sample()

iterator = twitter_stream.statuses.filter(track="Euro2016", language="fr") 

tweet_count = 1000 
for tweet in iterator:
    tweet_count -= 1


    print (tweet['created_at'],"\t",tweet['user']['screen_name'],"\t",tweet['geo'], "\t",tweet['text'])


    if tweet_count <= 0:
        break

可以导入tweepy (需要先用pip安装)并覆盖listener class ,以便能够以json格式输出数据。 下面是一个例子:

from tweepy import Stream
from tweepy.streaming import StreamListener

#Listener Class Override
class listener(StreamListener):
    def on_data(self, data):
        try: 
            tweet = json.loads(data)
            with open('your_data.json', 'a') as my_file:
                json.dump(tweet, my_file)
        except BaseException:
            print('Error')
            pass

    def on_error(self, status):
        print(statuses)

my_listener=listener()
twitterStream = Stream(oauth, my_listener)  #Inizialize Stream object

您可以在此处阅读有关tweepy更多信息: http : tweepy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM