API tkinter python条目

2024-06-16 11:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我对输入有问题。我希望用户在
API链接。我知道我不能转换成str。所以当用户选择输入一个城市时,他只需在输入中输入城市后点击预测按钮,天气就会被打印出来:

from tkinter import *
import requests
import json

class Application(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.root = master
        self.pack()
        self.create_widgets()

    def create_widgets(self):
        self.v = StringVar()
        self.e = Entry(self, textvariable=self.v)
        self.e.pack(side="left")

        self.v.set("Enter City")
        self.s = self.v.get()
        self.e.focus_set()


        self.butn = Button(self)
        self.butn["text"] = "Forecast"
        self.butn["command"] = self.make_request
        self.butn.pack(side="left")

        self.QUIT = Button(self, text="QUIT", command=self.root.destroy)
        self.QUIT.pack(side="right")


    def make_request(self):
        r = requests.get("http://api.wunderground.com/api/ab78bcbaca641959/forecast/q/Sweden/" + ???? + ".json")
        data = r.json()
        for day in data['forecast']['simpleforecast']['forecastday']:
            print (day['date']['weekday'] + ":")
            print ("Conditions: ", day['conditions'])
            print ("High: ", day['high']['celsius'] + "C", "Low: ", day['low']['celsius'] + "C", '\n')
        return data






rot = Tk()
rot.geometry("900x650+200+50")
rot.title("The Trip")

app = Application(master=rot)
app.mainloop()

Tags: 用户importselfmasterjsondatadefrequests
1条回答
网友
1楼 · 发布于 2024-06-16 11:35:41

self.v.get()代替????,这样就可以了

r = requests.get("http://api.wunderground.com/api/ab78bcbaca641959/forecast/q/Sweden/" + self.v.get() + ".json")

顺便说一句:你不再需要self.s = self.v.get()。在

相关问题 更多 >