Search code examples
pythontweepypython-unicode

convert persian text unicode to persian characters using tweepy


I'm trying to collect tweets in persian language and do text analysis . I used tweepy to do this . but result is unicode format . how can I convert unicode text to real persian text ?

     import tweepy
     import csv
     import pandas as pd
     ####input your credentials here
     consumer_key = xxxx
     consumer_secret = xxxx
     access_token = xxxx
     access_token_secret = xxxx

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth,wait_on_rate_limit=True)
    #####United Airlines
    # Open/Create a file to append data
    csvFile = open('got5.txt', 'a')
    #Use csv Writer
    csvWriter = csv.writer(csvFile)

    for tweet in tweepy.Cursor(api.search,q="گات", count=5,
                       lang="fa",
                       since="2017-04-03").items():
csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])
print([tweet.created_at, tweet.text.encode('utf-8')])

and the result :

    2019-07-11 17:09:17,b'@StingTIcon \xd8\xa8\xd8\xa7\xd8\xb2 \xd8\xa7\xdb\x8c\xd9\x86 \xd8\xae\xd9\x88\xd8\xa8\xd9\x87 =)))))) \xd8\xa7\xd9\x88\xd9\x86\xd8\xa7\xdb\x8c\xdb\x8c \xda\xa9\xd9\x87 \xd9\x85\xdb\x8c\xda\xaf\xd9\x85 \xd8\xaa\xd8\xa7\xd8\xa8\xd9\x84\xd9\x88\xd8\xaa\xd8\xb1\xdb\x8c\xd9\x86 \xd8\xb3\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\xd8\xa7 \xd8\xb1\xd9\x88 \xda\xa9\xd9\x87 \xd9\x87\xd8\xb1 \xd8\xae\xd8\xb1\xdb\x8c \xd8\xa7\xd8\xb3\xd9\x85\xd8\xb4\xd9\x88 \xd8\xb4\xd9\x86\xdb\x8c\xd8\xaf\xd9\x87 \xd9\xbe\xdb\x8c\xd8\xb4\xd9\x86\xd9\x87\xd8\xa7\xd8\xaf \xd9\x85\xdb\x8c\xd8\xaf\xd9\x86. \xd9\x84\xd8\xa7\xd8\xb3\xd8\xaa\xd8\x8c \xd9\x81\xd8\xb1\xd8\xa7\xd8\xb1 \xd8\xa7\xd8\xb2 \xd8\xb2\xd9\x86\xd8\xaf\xd8\xa7\xd9\x86\xd8\x8c \xd8\xa8\xd8\xb1\xda\xa9\xdb\x8c\xd9\x86\xda\xaf \xd8\xa8\xd8\xaf\xd8\x8c \xda\xaf\xd8\xa7\xd8\xaa'

2019-07-11 16:39:40,b'@nik_yousefi \xd9\x81\xd8\xb5\xd9\x84 \xd8\xa2\xd8\xae\xd8\xb1\xd9\x88 \xd9\x86\xd9\x88\xdb\x8c\xd8\xb3\xd9\x86\xd8\xaf\xd9\x87 \xd9\x87\xd8\xa7\xdb\x8c \xda\xaf\xd8\xa7\xd8\xaa \xd9\x86\xd9\x88\xd8\xb4\xd8\xaa\xd9\x87 \xd8\xa8\xd9\x88\xd8\xaf\xd9\x86 \xd9\x81\xda\xa9\xd8\xb1 \xda\xa9\xd9\x86\xd9\x85 :))'

2019-07-11 15:54:40,b'@charbsho \xd9\x81\xda\xa9\xd8\xb1 \xda\xa9\xd8\xb1\xd8\xaf\xd9\x85 \xd8\xb9\xda\xa9\xd8\xb3\xdb\x8c \xda\x86\xdb\x8c\xd8\xb2\xdb\x8c \xd8\xa7\xd8\xb2 \xda\xaf\xd8\xa7\xd8\xaa \xda\xaf\xd8\xb0\xd8\xa7\xd8\xb4\xd8\xaa\xd9\x86 \xda\xa9\xd9\x87 \xd8\xb3\xd8\xb1 \xd9\x86\xd8\xaf \xd8\xa7\xd8\xb3\xd8\xaa\xd8\xa7\xd8\xb1\xda\xa9\xd9\x88 \xd8\xb2\xd8\xaf\xd9\x86=))))))))

Can anybody give me an insight on how to do it?


Solution

  • You can convert it like this:

    string = b'@StingTIcon \xd8\xa8\xd8\xa7\xd8\xb2 \xd8\xa7\xdb\x8c\xd9\x86 \xd8\xae\xd9\x88\xd8\xa8\xd9\x87 =)))))) \xd8\xa7\xd9\x88\xd9\x86\xd8\xa7\xdb\x8c\xdb\x8c \xda\xa9\xd9\x87 \xd9\x85\xdb\x8c\xda\xaf\xd9\x85 \xd8\xaa\xd8\xa7\xd8\xa8\xd9\x84\xd9\x88\xd8\xaa\xd8\xb1\xdb\x8c\xd9\x86 \xd8\xb3\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\xd8\xa7 \xd8\xb1\xd9\x88 \xda\xa9\xd9\x87 \xd9\x87\xd8\xb1 \xd8\xae\xd8\xb1\xdb\x8c \xd8\xa7\xd8\xb3\xd9\x85\xd8\xb4\xd9\x88 \xd8\xb4\xd9\x86\xdb\x8c\xd8\xaf\xd9\x87 \xd9\xbe\xdb\x8c\xd8\xb4\xd9\x86\xd9\x87\xd8\xa7\xd8\xaf \xd9\x85\xdb\x8c\xd8\xaf\xd9\x86. \xd9\x84\xd8\xa7\xd8\xb3\xd8\xaa\xd8\x8c \xd9\x81\xd8\xb1\xd8\xa7\xd8\xb1 \xd8\xa7\xd8\xb2 \xd8\xb2\xd9\x86\xd8\xaf\xd8\xa7\xd9\x86\xd8\x8c \xd8\xa8\xd8\xb1\xda\xa9\xdb\x8c\xd9\x86\xda\xaf \xd8\xa8\xd8\xaf\xd8\x8c \xda\xaf\xd8\xa7\xd8\xaa'
    result = string.decode('unicode-escape').encode('latin1').decode('utf-8')
    

    Output:

    @StingTIcon باز این خوبه =)))))) اونایی که میگم تابلوترین سریالا رو که هر خری اسمشو شنیده پیشنهاد میدن. لاست، فرار از زندان، برکینگ بد، گات