“推文”格式与通过python进行解码/编码有什么区别?

时间:2016-02-04 09:57:30

标签: python json twitter arabic

您好

使用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

============================================

然后,这是一种熟悉的方法来提取推文文本并在文件中写入没有问题吗?

感谢您的努力,

1 个答案:

答案 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在一个文件中供以后使用(不是状态对象本身)

     

希望有所帮助!

这不是我的答案,我只是添加了传播知识的链接。 谢谢他。