前提・実現したいこと
python(PySimpleGUI)にて、Twitter関連のデスクトップアプリを個人で作成しています。
TwitterAPIでTwitter側から来た内容を、順次テキストボックス(Multiline)に入れたいと思っているのですが、上手く入りません。
sg.Multilineに文字を入れる機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
ERROR Key Error line 112 win[''].update("") Problem finding your key Closest match=None
該当のソースコード
「PYTHON 3.9.4」
ソースコード
python
1import PySimpleGUI as sg 2import time 3import tweepy 4 5from PySimpleGUI.PySimpleGUI import Window, popup 6 7 8frame1 = sg.Frame('検索', [[sg.Text('キーワード', size=(15,1))], 9 [sg.InputText(key='keyword'),sg.Submit(button_text='開始')], 10 [sg.Multiline(default_text='',size=(42,9),border_width=2, key='tx1'),sg.Submit(button_text='停止')], 11 ],) 12 13 14# 画面レイアウトを指定 15layout = [ 16 [sg.Text('*****')], 17 18 [frame1], 19 [sg.Button('終了')] 20 21 ] 22 23# ウィンドウを表示する関数 24def show_window(): 25 26 win = sg.Window('Twitter AUTO', layout) 27 text = "" 28 29# イベントループ 30 while True: 31 event, values = win.read() 32 33 if event is None: break 34 35if event == '開始': 36 37auth = tweepy.OAuthHandler(CK, CKS) 38 auth.set_access_token(AT, ATS) 39 api = tweepy.API(auth) 40 41 query = values['keyword'] 42 results = api.search(q=query, count=100) 43 44 45 for result in results: 46 screen_name = result.user.screen_name 47 48 49 text = screen_name + "\n" + text 50 win['tx1'].update(text) 51 win[''].update("") 52 53 54 55 for i in range(3): 56 try: 57 api.create_friendship(screen_name) 58 59 60 print('成功') 61 except tweepy.RateLimitError as e: 62 print(e) 63 time.sleep(15 * 60) 64 except tweepy.TweepError as e: 65 print(e) 66 break 67 else: 68 time.sleep(5) 69 break 70 71show_window()
試したこと
エラー発生個所
text = screen_name + "\n" + text win['tx1'].update(text) win[''].update("")
■win[''].update("")
このコードは苦肉の策といいますか、このコードはいらないはずなのですが、これを入れると理由は分かりませんが、エラー(ERROR Key Error)が表示され、エラーが出るたびにCloseボタンを押すと、sg.Multilineに、順次文字(文字)が入っていきます。
アドバイス頂けたら有難いです。
