Недостаточно значений для распаковки в Python GUI приложении - PullRequest
0 голосов
/ 28 мая 2020

Я пишу приложение GUI в Python, используя Tkinter. Приложение отображает данные о погоде для любого места и периода времени, выбранных пользователем. Пользователь может отображать данные о погоде за одну неделю и один месяц. Я пытаюсь отобразить эти данные в таблице, но получаю следующую ошибку:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Kevin\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "C:\Users\Kevin\Documents\Python\Weather Data Application\WeatherData.py", line 109, in getdata
    for i, high, low, precip, conditions in enumerate(list, start = 1):
ValueError: not enough values to unpack (expected 5, got 2)

В таблице должно быть 5 столбцов. Я не уверен, почему я получаю эту ошибку, поскольку у меня есть все элементы, которые я хочу отобразить в определяемом мною списке. Часть кода, в которой возникает моя ошибка, показана ниже:

#Display Data
    for i in range(0,len(value)):
            #Display data for one day
            maxtemp = tk.Label(text = weather['locations'][place]['values'][i]['maxt'])
            mintemp = tk.Label(text = weather['locations'][place]['values'][i]['mint'])
            precipitation = tk.Label(text = weather['locations'][place]['values'][i]['precip'])
            condition = tk.Label(text = weather['locations'][place]['values'][i]['conditions'])
            if (radiovalue.get() == 2 and len(value) == 7) or radiovalue.get() == 3:
                root.withdraw()
                def goBack():
                  root.deiconify()
                  data.withdraw()    
                #new window
                data = tk.Tk()
                tablelabel = tk.Label(data, text = "Weather Data").grid(row = 0, columnspan = 5)
                cols = ('Date', 'High Temperature', 'Low Temperature', 'Precipitation', 'Conditions')
                weatherBox = ttk.Treeview(data, columns = cols, show = 'headings')
                back = tk.Button(data, text = "Go Back", command = goBack).grid(row = 1) 
                for col in cols:
                    weatherBox.heading(col, text = col)
                weatherBox.grid(row = 1, column = 0, columnspan = 5)
                list = [weather['locations'][place]['values'][i]['maxt'],weather['locations'][place]['values'][i]['mint'],
                        weather['locations'][place]['values'][i]['precip'],weather['locations'][place]['values'][i]['conditions']]
                for i, high, low, precip, conditions in enumerate(list, start = 1):
                    weatherBox.insert(values = (i, high, low, precip, conditions))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...