2017-09-12 14 views
1

tweepyを使用してTkinterウィンドウに自分のtwitterタイムラインを表示しようとしています。これは、コードtkinter.TclError:文字U + 1f449がTclで許可されている範囲(U + 0000-U + FFFF)を超えています

import tweepy 
import tkinter 

consumer_key = 'xxxxxxxxxxxxxx' 
consumer_sec ='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
acc_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
acc_token_sec = 'xxxxxxxxxxxxxxxxxxxxxx' 
auth = tweepy.OAuthHandler(consumer_key,consumer_sec) 
auth.set_access_token(acc_token,acc_token_sec) 

api = tweepy.API(auth) 

tweets = api.home_timeline() 

tkwindow = tkinter.Tk() 

for tweet in tweets: 
    i = 1 
    label = tkinter.Label(tkwindow, text=tweet.author.name + " " + str(tweet.created_at) + "\n" + str(tweet.text)) 
    if i == 5: 
     break 
tkwindow.mainloop() 

あるしかし、私は次のエラー

_tkinter.TclError: character U+1f449 is above the range (U+0000-U+FFFF) allowed by Tcl

を持っています私はTkinterのが本当のツイートに表示されるいくつかの特別なアイコンが表示されないことを理解し、しかし、実際には、私はしたくありませんだから私はこのエラーを回避し、つぶやきのテキストのみ

答えて

1

を表示することができますどのようにこれを行う最も簡単な方法は、になり、私はちょうどつぶやきの単純なテキストを表示したいものを、

を表示余分な文字を削除します。これは、forループの開始時に次のコードを使用して行うことができる:

char_list = [tweet[j] for j in range(len(tweet)) if ord(tweet[j]) in range(65536)] 
tweet='' 
for j in char_list: 
    tweet=tweet+j 
+0

こんにちは、あなたの答えのおかげで、しかし、それは動作していない、私のpythonに新しいです、だから、多分私はそれを間違った方法を使用していました。私のコードでこれらの行をどこに書くべきですか? – beginner

+0

申し訳ありませんが、range()関数を追加するのを忘れていました。今はうまくいくはずです。 –

関連する問題