因为标题说我几乎没有试图弄清楚如何在python 3.6中使用tweepy来保存推文。我找到了一个解决方案,我可以用英语保存,但我不能用阿拉伯语。有人有什么想法吗?
我在阿拉伯语推文的CSV文件中输入的输出就像这样
1510123361.875904 :: \ u0623 \ u0664 \ u0648 \ u0608 \ u0628 \ u0644 \ u0645 \ u0627 \ u062a \ u0624 \ u0644 \ u0644 \ u0647 \ u0644 \ u0644 / um4 / u0644 \ u0644 / FMsjMi2nvF
提前谢谢。
这是我的代码
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
save = open('ExampleNumber4.csv', mode='w', encoding="utf8", newline=None)
class listener(StreamListener) :
def on_data (self , data):
try:
tweet = json.loads(data)['text']
print(tweet.translate(non_bmp_map))
tweet = data.split(',"text":"')[1].split('","source')[0]
savefile = str(time.time()) + "::" + tweet
save.write(savefile)
save.write("\n\n")
return (True)
except KeyError:
pass
def on_error(self , status):
print(status)
auth = OAuthHandler (ConsumerKey , ConsumerSecret)
auth.set_access_token(AccessToken , AccessTokenSecret)
twitterStream = Stream(auth , listener())
twitterStream.filter(track=[u'سيارة'])
save.close()
答案 0 :(得分:0)
这是一个有效的解决方案。请尝试通过包含一些示例JSON数据并跳过我们无法按原样运行的推特代码来制作下一次产生问题错误的工作示例。
#coding:utf8
import sys
import json
import time
import csv
data = r'{"text": "\u0633\u064a\u0627\u0631\u0629\ud83d\ude00"}' # ASCII JSON
# data = '{"text": "سيارة"}' # non-ASCII JSON
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
with open('ExampleNumber4.csv', mode='w', encoding="utf-8-sig", newline='') as save:
writer = csv.writer(save)
tweet = json.loads(data)['text']
print(tweet.translate(non_bmp_map))
savefile = [time.time(),tweet]
writer.writerow(savefile)
输出:
1510208283.7488384,سيارة�