tkinter 输入框获取的数据链接问题

和风API调用,使用tkinter模块输入地名返回气象数据

# GUI
root = Tk()
# 窗口标题
root.title("天气预报")
# 窗口大小控制
root.geometry("240x240")
# 搜索框
lbl = Label(root, text="输入要查询的城市")
lbl.place(relx=0.5, rely=0.3)
path = StringVar()
entry = tkinter.Entry(root, width=10, textvariable=path)
entry.place(relx=0.5, rely=0.3)


def getweather():
    key = "157b033e994d4ed88008156dec18"
    ID = getID(str(entry.get()), key)
    weather = getdata(str(entry.get()), ID, key)
    data_temp = weather['temp']  # 温度
    data_feelsLike = weather["feelsLike"]  # 体感温度
    data_text = weather["text"]  # 气象状况
    data_wind360 = weather["wind360"]  # 360°风向
    data_windDir = weather["windDir"]  # 风向
    data_windScale = weather["windScale"]  # 风级
    data_windSpeed = weather["windSpeed"]  # 风速
    data_humidity = weather["humidity"]  # 湿度
    data_precip = weather["precip"]  # 降水量
    data_vis = weather["vis"]  # 能见度
    lbl.configure(
        text="气温:{}\n "
             "体感温度:{}\n "
             "湿度:{}\n"
             "天气情况:{}\n "
             "360°风向:{}\n "
             "风向:{}\n "
             "风级:{}\n "
             "风速{}\n "
             "降水量:{}\n "
             "能见度:{}\n"
            .format(data_temp,
                    data_feelsLike,
                    data_humidity,
                    data_text,
                    data_wind360,
                    data_windDir,
                    data_windScale,
                    data_windSpeed,
                    data_precip,
                    data_vis))


button = tkinter.Button(root, text='点击查询', command=getweather())
root.mainloop()



报错情况

Traceback (most recent call last):
  File "D:\pythonProject1\天气预报(API 和风).py", line 79, in <module>
    button = tkinter.Button(root, text='点击查询', command=getweather())
  File "D:\pythonProject1\天气预报(API 和风).py", line 44, in getweather
    ID = getID(str(entry.get()), key)
  File "D:\pythonProject1\天气预报(API 和风).py", line 13, in getID
    for data in datas['location']:
KeyError: 'location'


我的解答思路和尝试过的方法

去除GUI部分,使用input为正常运行,尝试通过StringVar变量赋值给label的textVariable参数未成功

我想要达到的结果

在Entry中输入的地名可以传递到上面的函数中

ID = getID(str(entry.get()), key)
改成
ID = getID(path.get(), key)

img


把上面的换成下面这个试试


# 输入提示和输入框
label = Label(root, bg='LightGreen', text='输入要查询的城市:', ).grid()
entry = Entry(root, bg='PaleTurquoise2')
entry.grid(row=0, column=1)

getID那个函数发一下,确定一下直接输入的和通过当前程序输入的是不是一样的