Python 在输出json jable时对其进行排序
因此,我尝试创建一个表格系统,它可以向用户显示当前的表格、分数、游戏、固定装置等,并认为在将它们放入json文件时确定顺序可能会更容易,但在必须显示它们之前,不会对它们进行实际排序 我遇到的问题是,我不知道如何检测位置是否正确 到目前为止,我掌握的代码是:Python 在输出json jable时对其进行排序,python,json,repl.it,Python,Json,Repl.it,因此,我尝试创建一个表格系统,它可以向用户显示当前的表格、分数、游戏、固定装置等,并认为在将它们放入json文件时确定顺序可能会更容易,但在必须显示它们之前,不会对它们进行实际排序 我遇到的问题是,我不知道如何检测位置是否正确 到目前为止,我掌握的代码是: def showtbl(teams, sport, league): teamdata = teams[sport.get()][league.get()] w = Tk() Label(w, text="POS
def showtbl(teams, sport, league):
teamdata = teams[sport.get()][league.get()]
w = Tk()
Label(w, text="POS TEAM PLD W D L PF PA PD PTS").grid(row=0, column=0, columnspan=10)
count = 1
max = len(teamdata)
data = []
while count != max:
for i in teamdata:
print(teamdata[i])
if teamdata[i]["pos"] == count:
count += 1
data.append(teamdata)
print(data)
(目前我正在打印,但很快就会将其放入tkinter窗口)
数据存储如下:
{ "Sport": {
"League": {
"Team 1":
{"pos": 2, "pld": 7, "won": 2, "draw": 0, "lost": 5, "pf": 92, "pa": 172, "pd": -80, "pts": 4},
"Team 2":
{"pos": 1, "pld": 7, "won": 5, "draw": 0, "lost": 2, "pf": 172, "pa": 92, "pd": 80, "pts": 10}
}
}
}
(体育和联赛已经确定,因此teamdata=data[sport][league]
)
我觉得我已经接近解决方案了,但我不知道从这里到哪里才能让它发挥作用
如何在显示时对其进行排序?您正在将
teamdata
添加到您的data
列表中,这可能不是您想要做的。您可能想添加teamdata[i]
此外,在while循环中使用(相对)昂贵的for循环来对teamdata
进行排序也不是一个好主意。尝试使用排序后的函数,如下所示:
def showtbl(团队、运动、联盟):
teamdata=团队[sport.get()][league.get()]
w=Tk()
标签(w,text=“POS TEAM PLD w D L PF PA PD PTS”).grid(行=0,列=0,列span=10)
数据=[]
对于已排序的团队(teamdata,key=lambda x:x[“pos”]):
data.append(team)#<这是一个重要的变化
打印(数据)
您可以在这里看到,我添加的是team
,而不是teamdata
。我正在使用lambda
对您的teamdata
进行排序,这是一种单行函数,它告诉排序函数应该使用teamdata
的哪个特定部分进行排序。您正在将teamdata
添加到数据
列表中,这可能不是您的本意。您可能想添加teamdata[i]
此外,在while循环中使用(相对)昂贵的for循环来对teamdata
进行排序也不是一个好主意。尝试使用排序后的函数,如下所示:
def showtbl(团队、运动、联盟):
teamdata=团队[sport.get()][league.get()]
w=Tk()
标签(w,text=“POS TEAM PLD w D L PF PA PD PTS”).grid(行=0,列=0,列span=10)
数据=[]
对于已排序的团队(teamdata,key=lambda x:x[“pos”]):
data.append(team)#<这是一个重要的变化
打印(数据)
您可以在这里看到,我添加的是team
,而不是teamdata
。我正在使用lambda
对您的teamdata
进行排序,这是一种单行函数,它告诉排序函数应该使用teamdata
的哪个特定部分进行排序