【发布时间】:2016-03-06 03:23:15
【问题描述】:
例如,需要帮助弄清楚如何按从大到小对 JSON 响应进行排序。以下是 JSON 响应的一部分:
{
"queue": "RANKED_SOLO_5x5",
"name": "Riven's Cutthroats",
"entries": [
{
"leaguePoints": 812,
"isFreshBlood": false,
"isHotStreak": false,
"division": "I",
"isInactive": false,
"isVeteran": false,
"losses": 277,
"playerOrTeamName": "CLG Bunso",
"playerOrTeamId": "19732914",
"wins": 356
},
{
"leaguePoints": 567,
"isFreshBlood": false,
"isHotStreak": false,
"division": "I",
"isInactive": false,
"isVeteran": false,
"losses": 56,
"playerOrTeamName": "SKT Frost",
"playerOrTeamId": "66401633",
"wins": 160
},
{
"leaguePoints": 751,
"isFreshBlood": false,
"isHotStreak": false,
"division": "I",
"isInactive": false,
"isVeteran": true,
"losses": 421,
"playerOrTeamName": "C9 Hard",
"playerOrTeamId": "47836799",
"wins": 494
},
{
"leaguePoints": 587,
"isFreshBlood": false,
"isHotStreak": true,
"division": "I",
"isInactive": false,
"isVeteran": false,
"losses": 157,
"playerOrTeamName": "ShadowFiendv",
"playerOrTeamId": "71181475",
"wins": 265
},
{
"leaguePoints": 1109,
"isFreshBlood": false,
"isHotStreak": false,
"division": "I",
"isInactive": false,
"isVeteran": true,
"losses": 353,
"playerOrTeamName": "ApoIlo Price",
"playerOrTeamId": "7250",
"wins": 425
},
现在,我已经获取了我需要的必要信息,如下所示:
def getChallengerLadder(region, APIKey):
URL = "https://" + region + ".api.pvp.net/api/lol/" + region + "/v2.5/league/challenger?type=RANKED_SOLO_5x5&api_key=" + APIKey
print (URL)
response = requests.get(URL)
return response.json()
responseJSON3 = getChallengerLadder(region, APIKey)
x = 0
while True:
print (responseJSON3['entries'][x]['leaguePoints'], responseJSON3['entries'][x]['playerOrTeamName'] )
x += 1
结果我得到一个列表如下(同样,下面只是一个小样本):
608 Z Y Xydra
552 Silas Kroeger
1109 ApoIlo Price
601 Blem
587 Boy vs Girl
701 l am Bjerg
560 duo to homecomin
我想按从大到小对这个列表进行排序,但我不知道该怎么做。任何帮助将不胜感激!有没有比我已经完成的更好的方法?我假设您必须将响应放入数组中并对数组进行排序?还是有更好的方法?
【问题讨论】: