Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python排序JSON响应_Python_Json_Sorting - Fatal编程技术网

用Python排序JSON响应

用Python排序JSON响应,python,json,sorting,Python,Json,Sorting,例如,需要帮助找出如何按从高到低的数字对JSON响应进行排序。下面是JSON响应的一部分: { "queue": "RANKED_SOLO_5x5", "name": "Riven's Cutthroats", "entries": [ { "leaguePoints": 812, "isFreshBlood": false, "isHotStreak": false, "division": "I", "isInactive": false

例如,需要帮助找出如何按从高到低的数字对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
因此,我得到如下列表(同样,下面只是一个小样本):


我想把这个列表从大到小排序,但我不知道怎么做。任何帮助都会得到报答!有没有比我已经做的更好的方法?我假设您必须将响应放入数组并对数组进行排序?或者有更好的方法吗?

按联盟积分排序

(我使用
json
模块仅创建完整的工作示例)


按联盟积分排序

(我使用
json
模块仅创建完整的工作示例)


嘿,谢谢你的回答。在您的示例中,您将“text”设置为JSON响应的变量。如果我手头没有文本,我该怎么做?基本上,只有当我从API提示JSON时,文本才可用,并且它可以每隔几分钟更改一次。例如,我不能这样做:
text=''
print(responseJSON3)
''''
,因为responseJSON3被视为引号内的字符串?抱歉,如果这看起来很简单,我只是学习PythonI使用
json.loads(text)
来模拟API并获得类似于
responseJSON3
的结果来创建工作示例。在回答中,我将变量
j
更改为
responseJSON3
print
在屏幕上发送文本,您无法将其分配给变量。您可以使用
text=str(一些对象)
,但要获得正确的JSON文本,最好使用
text=JSON.dumps(responseJSON3)
。(但在我的示例中,您不必将
resonseJSON3
转换为文本)谢谢,我上个星期已经弄明白了,忘了再次查看您的响应,我使用了sorted()方法,将其分配给变量,然后打印了我需要的两个条目(leaguePoints和playerOrTeamName)嘿,谢谢您的回答。在您的示例中,您将“text”设置为JSON响应的变量。如果我手头没有文本,我该怎么做?基本上,只有当我从API提示JSON时,文本才可用,并且它可以每隔几分钟更改一次。例如,我不能这样做:
text=''
print(responseJSON3)
''''
,因为responseJSON3被视为引号内的字符串?抱歉,如果这看起来很简单,我只是学习PythonI使用
json.loads(text)
来模拟API并获得类似于
responseJSON3
的结果来创建工作示例。在回答中,我将变量
j
更改为
responseJSON3
print
在屏幕上发送文本,您无法将其分配给变量。您可以使用
text=str(一些对象)
,但要获得正确的JSON文本,最好使用
text=JSON.dumps(responseJSON3)
。(但在我的示例中,您不必将
resonseJSON3
转换为文本)谢谢,我上个星期已经弄明白了,忘了再次查看您的响应,我使用了sorted()方法,将其分配给变量,然后打印了我需要的两个条目(leaguePoints和playerOrTeamName)
608 Z Y Xydra
552 Silas Kroeger
1109 ApoIlo Price
601 Blem
587 Boy vs Girl
701 l am Bjerg
560 duo to homecomin
text = '''{
"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
  }
]
}'''

import json

# simulate `getChallengerLadder`
responseJSON3 = json.loads(text)

result = sorted(responseJSON3['entries'], key=lambda x:x['leaguePoints'])

print result