您好
使用Python 2.7& Tweepy图书馆
主要主题:使用Python从Streaming API下载推文。
我对来自Streaming API的不同格式的下载推文感到困惑,因为格式在同一条推文中有所区别!
注意:我只关注阿拉伯语推文。
第一种格式为:
{“created_at”:“Wed Feb 03 12:52:53 +0000 2016”,“id”:694866144142848001,“id_str”:“694866144142848001”,“text”:“\ u06 ......... < / em>的
使用过的第1种格式代码: 的 的
的import tweepy
import json
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
class StdOutListener(StreamListener):
def on_data(self, data):
print(data)
file.write(data)
if __name__ == '__main__':
#OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
listener = StdOutListener()
stream = Stream(auth, listener)
stream.filter( track=[u'الى' , u'إلى' ,u'عشان',u'علشان',u'ماشى',u'ليه',u'ازاى'])
的
============================================
第二种格式为:
{u'contributors':没有,你被'截断':错误,你'''':'u'\ u0627',u'is_quote_status':错误,......
二手代码:
def on_data(self, data):
print json.loads(data)
注意:在文件
中写入json.loads(data)时出错
=============================================== ==
第3种格式是:
{“contributors”:null,“truncated”:false,“text”:“RT @a_meles:@EHSANFAKEEH \ n \ u0627”,“is_quote_status”:false,“in_reply_to_status_id”:null,“id “:695174171903582208,”favorite_count“:0,”source“:”http://twitter.com/download/android \“rel = \”nofollow \“&gt; Twitter f ......
使用过的第3种格式代码:
def on_data(self, data):
x = json.loads(data)
print (json.dumps(x))
=============================================== =
第4种格式是:
状态(贡献者=无,截断= False,text = u'@ AlsaeedFajer \ u0627 \',is_quote_status = False,in_reply_to_status_id =无,id = 694494200520413184L,favorite_count = 0,_ api =,author = User( follow_request_sent =无,profile_use_background_image = True,_ json = {u'follow_reques .........。
第4种格式的已使用代码:使用on_status代替on_data
def on_status(self, status):
print status
============================================
然后,这是一种熟悉的方法来提取推文文本并在文件中写入没有问题吗?
感谢您的努力,
答案 0 :(得分:0)
An Answer for the same question
理想情况下,您希望使用&amp;存储从Twitter发送给您的JSON对象:
第一种格式:流侦听器的on_data方法接收所有消息: 看到 https://github.com/tweepy/tweepy/blob/master/docs/streaming_how_to.rst1 这可能是也可能不是您希望存储在文件中以供日后使用。
第二种格式:print json.loads(data)打印字符串表示形式 您使用.loads创建的Python对象(它通常是一个字典)
第3种格式:结果几乎与第1种相同 - 但你是 从字符串反序列化json对象,然后序列化它 马上。第1和第3之间的差异:字段的顺序 喜欢&#34; created_at&#34;,&#34; id&#34;有时根据图书馆而改变。
第4种格式是Status Python对象的字符串表示: tweepy Status对象不是JSON,但它有一个_json属性 包含来自twitter的JSON响应。
如果你使用on_status()监听器,存储它,它应该工作 status._json在一个文件中供以后使用(不是状态对象本身)
希望有所帮助!
这不是我的答案,我只是添加了传播知识的链接。 谢谢他。