Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有tweepy和阿拉伯语字符的推特流问题_Python_Tweepy - Fatal编程技术网

Python 带有tweepy和阿拉伯语字符的推特流问题

Python 带有tweepy和阿拉伯语字符的推特流问题,python,tweepy,Python,Tweepy,我正在尝试使用python 3.6中的tweepy库获取阿拉伯语推文,英语版的推文效果非常好,但当我尝试获取阿拉伯语推文时,我遇到了许多问题。最后一个代码的问题是,阿拉伯语字符的推文显示为“\u0635\u0648\u0651\u062a\u0648\u0627” 我在互联网上尝试了几种解决方案,但没有人能解决我的问题,因为他们中的大多数人都试图只获取推文的“文本”,这样他们就可以直接用文本解决编码问题,但对我来说,我想用json获取全部信息 from tweepy.streaming

我正在尝试使用python 3.6中的tweepy库获取阿拉伯语推文,英语版的推文效果非常好,但当我尝试获取阿拉伯语推文时,我遇到了许多问题。最后一个代码的问题是,阿拉伯语字符的推文显示为“\u0635\u0648\u0651\u062a\u0648\u0627”

我在互联网上尝试了几种解决方案,但没有人能解决我的问题,因为他们中的大多数人都试图只获取推文的“文本”,这样他们就可以直接用文本解决编码问题,但对我来说,我想用json获取全部信息

    from tweepy.streaming import StreamListener
    from tweepy import OAuthHandler
    from tweepy import Stream
    import json


    access_token = '-'
    access_token_secret = '-'
    consumer_key = '-'
    consumer_secret = '-'


    class StdOutListener(StreamListener):

        def on_data(self, data):
            print (data.encode("UTF-8")) 
            return True


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


     if __name__ == '__main__':

        l = StdOutListener()
        auth = OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_token, access_token_secret)
        stream = Stream(auth, l)

        stream.filter(  track=["عربي"]) 


 > $ python file.py > file2.txt
文本文件和终端中的结果:


{“创建时间”:“2019年1月17日星期四12:12:16+0000”,“id”:1085872428432195585,“id”str:“1085872428432195585”,“文本”:“RT@MALHACHIMI:\u0642\u0627\u062f\u0629\u062d\u0631\u0643\u0629\u0627\u0644\u0646\u0647\u0636\u0629\u0635\u0648\u0651\u062a\u0648\u0627\U0626\u0639”

如果我对你问题中的第一个例子这样做:

>>> print( "\u0635\u0648\u0651\u062a\u0648\u0627 ")
صوّتوا 
阿拉伯语出现。但如果您在控制台上显示dict,而不指定要如何显示,Python将只使用使用ASCII字符集的默认表示形式,该字符集中不可打印的任何内容都将表示为转义符。这是因为如果您要在程序中对该字符串进行编码,您的IDE editor在处理阿拉伯语时可能会遇到问题。原因是Python代码从左到右的顺序和字符串从右到左的顺序之间的切换很难管理。信息没有丢失或损坏,只是以最低公分母格式显示