apiを使って東京の天気情報を取得し、その結果を表示するアプリを自作しています。天気情報を取得するところまでは順調に進んだのですが下のコードを実行したときに'InformationWidget' object has no attribute 'text'というエラーが発生してしまいます。おそらく23行目のgetWeather関数が正しく実行されてないのではと思ったのですがどこを直せばよいのでしょうか。
python
1#-*- coding: utf-8 -*_ 2import kivy 3from kivy.app import App 4from kivy.config import Config 5from kivy.core import text 6#ウィンドウズのサイズ設定 7Config.set('graphics', 'width', '640') 8Config.set('graphics', 'height', '480') 9 10from kivy.uix.widget import Widget 11#from kivy.uix.textinput import TextInput 12from kivy.uix.label import Label 13import requests 14#必要であれば 15import pprint 16 17class InformationWidget(Widget): 18 def __init__(self, **kwargs): 19 super().__init__(**kwargs) 20 pass 21 22 #apiで天気情報を取得するgetWeather関数 23 def getWeather(): 24 api = "http://api.openweathermap.org/data/2.5/weather?q=tokyo&appid=〇〇〇〇〇〇〇〇〇〇〇〇" 25 json_data = requests.get(api).json() 26 weather = json_data['weather'][0]['main'] 27 temp = int(json_data['main']['temp'] - 273.15) 28 min_temp = int(json_data['main']['temp_min'] - 273.15) 29 max_temp = int(json_data['main']['temp_max'] - 273.15) 30 31 #取得した天気情報を表示 32 text = "今日の{}の天気は \n 最高気温: {}℃ \n 最低気温: {}℃".format("tokyo", max_temp, min_temp) 33 34class WeatherApp(App): 35 def __init__(self, **kwargs): 36 super().__init__(**kwargs) 37 self.title = "WeatherPredict" 38 39 40if __name__=='__main__': 41 WeatherApp().run()
kivy
1InformationWidget: 2 3<InformationWidget>: 4 canvas.before: 5 Color: 6 rgba: 0.6, 0.6, 0.6, 1 7 Rectangle: 8 pos: self.pos 9 size: self.size 10 11 Label: 12 on_text: root.getWeather(text) 13 text: root.text
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/07 08:35
2021/07/07 10:49
2021/07/07 11:03
2021/07/07 11:35