2017-07-13 36 views
0

我有以下代码:Python的pyowm库平均tempature

import tkinter as tk 
import time 
import pyowm 

class App(): 
    def __init__(self): 
     self.root = tk.Tk() 
     self.root.attributes("-fullscreen", True) 
     self.label = tk.Label(text="") 
     self.weatherlabel = tk.Label(text="") 
     self.label.pack() 
     self.update_clock() 
     self.root.mainloop() 

    def update_clock(self): 
     now = time.strftime("%H:%M:%S") 
     owm = pyowm.OWM() 
     owm = pyowm.OWM('*censored*') 
     observation = owm.weather_at_place('Modiin,il') 
     test = owm.weather_at_place('Modiin,il').get_weather().get_temperature('celsius') 
     print(test) 
     self.label.configure(text=now,font=("Helvetica",40),fg="white",bg="black") 
     self.weatherlabel.configure(text= test,font=("Helvetica",40),fg="white",bg="black") 
     self.root.configure(background='black') 
     self.root.after(1000, self.update_clock) 
     self.label.place(x=1310,y=10) 
     self.weatherlabel.place(x=400,y=400) 

app = App() 

有没有办法来请求平均温度,最高温度和最低温度分别代替它赋予了巨大的字符串?这里的输出是{'temp': 30.48, 'temp_max': 31.0, 'temp_min': 30.0, 'temp_kf': None}

我知道有测试[x]字符串方式中的每个char的地址,但这是不可靠的,除非我添加了很多参数来检测它是每个段中的单个数字号码还是双位数字。我想要一个更简单的解决方案。

感谢您的帮助

回答

0

这似乎是一本字典,您是否试图显示这样的结果?

dict = {'temp': 30.48, 'temp_max': 31.0, 'temp_min': 30.0, 'temp_kf': None} 

print dict['temp'] 
print "Maximum temperature : {}".format(dict['temp_max']) 

输出:

30.48 
Maximum temperature : 31.0 

如果结果是在test变量,你可以做这样的事情:

def update_clock(self): 
    now = time.strftime("%H:%M:%S") 
    owm = pyowm.OWM() 
    owm = pyowm.OWM('*censored*') 
    observation = owm.weather_at_place('Modiin,il') 
    test = owm.weather_at_place('Modiin,il').get_weather().get_temperature('celsius') 
    print "Average temperature : {}".format(test['temp']) 
    print "Minimum temperature : {}".format(test['temp_min']) 
    print "Maximum temperature : {}".format(test['temp_max']) 
    self.label.configure(text=now,font=("Helvetica",40),fg="white",bg="black") 
    self.weatherlabel.configure(text= test,font=("Helvetica",40),fg="white",bg="black") 
    self.root.configure(background='black') 
    self.root.after(1000, self.update_clock) 
    self.label.place(x=1310,y=10) 
    self.weatherlabel.place(x=400,y=400) 
+0

这不是一个元组,这是一本字典。 – barny