保存带有相关数据的阿拉伯语推文,例如推文 ID ..等
Saving Arabic tweets with related data such as tweet id ..etc
我想保存带有所有相关数据的阿拉伯语推文,例如推文 ID、用户位置、用户关注者等
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json
import sys
import codecs
import time
ConsumerKey = ' '
ConsumerSecret = ' '
AccessToken = ' '
AccessTokenSecret = ' '
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
class StdOutListener(StreamListener):
def on_data(self, data):
try:
all_data = json.loads(data)
tweet = all_data["text"]
print(tweet.translate(non_bmp_map))
SaveFile = codecs.open('ArabictwitDB.txt','a', "utf-8")
SaveFile.write(all_data)
SaveFile.write('\n')
SaveFile.close()
return True
except BaseException, e:
print 'failed',str(e)
time.sleep(5)
def on_error(self, status):
print status
if __name__ == '__main__':
l = StdOutListener()
auth = OAuthHandler(ConsumerKey, ConsumerSecret)
auth.set_access_token(AccessToken, AccessTokenSecret)
stream = Stream(auth, l)
stream.filter(track=[unicode("رمضان","utf-8")])
它告诉我这个错误
failed coercing to Unicode: need string or buffer, dict found
但是如果我替换 all_data
SaveFile.write(all_data)
推文
SaveFile.write(tweet)
它只保存阿拉伯语文本
如何将所有数据保存到一个文件中??
如果不需要格式化,直接
SaveFile.write(json.dumps(all_data))
但是既然你没有改变任何东西.. 为什么不保存 data
呢?
或者您可以像使用 tweet
一样访问每个值
我想保存带有所有相关数据的阿拉伯语推文,例如推文 ID、用户位置、用户关注者等
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json
import sys
import codecs
import time
ConsumerKey = ' '
ConsumerSecret = ' '
AccessToken = ' '
AccessTokenSecret = ' '
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
class StdOutListener(StreamListener):
def on_data(self, data):
try:
all_data = json.loads(data)
tweet = all_data["text"]
print(tweet.translate(non_bmp_map))
SaveFile = codecs.open('ArabictwitDB.txt','a', "utf-8")
SaveFile.write(all_data)
SaveFile.write('\n')
SaveFile.close()
return True
except BaseException, e:
print 'failed',str(e)
time.sleep(5)
def on_error(self, status):
print status
if __name__ == '__main__':
l = StdOutListener()
auth = OAuthHandler(ConsumerKey, ConsumerSecret)
auth.set_access_token(AccessToken, AccessTokenSecret)
stream = Stream(auth, l)
stream.filter(track=[unicode("رمضان","utf-8")])
它告诉我这个错误
failed coercing to Unicode: need string or buffer, dict found
但是如果我替换 all_data
SaveFile.write(all_data)
推文
SaveFile.write(tweet)
它只保存阿拉伯语文本 如何将所有数据保存到一个文件中??
如果不需要格式化,直接
SaveFile.write(json.dumps(all_data))
但是既然你没有改变任何东西.. 为什么不保存 data
呢?
或者您可以像使用 tweet