You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于JSON中p字段的整数值排序输出内容(Python)

没问题,我来帮你搞定这个自动排序的需求!你只需要把加载后的字典数据转换成可排序的列表,再根据p字段的值降序排列,最后循环打印就行,完全不用手动指定顺序或者写一堆判断。

下面是修改后的完整代码:

import json

# 这部分写入JSON的代码和你原来的一样,不用改动
y = {}
y['red'] = {'name': "red", 'p': 1}
y['blue'] = {'name': "blue", 'p': 3}
y['green'] = {'name': "green", 'p': 2}
with open('y.json', 'w') as f:
    json.dump(y, f)

# 读取JSON并处理排序逻辑
with open('y.json') as f:
    y = json.load(f)

# 把字典里的所有颜色对象取出来,按p值从大到小排序
sorted_colors = sorted(y.values(), key=lambda color: color['p'], reverse=True)

# 循环打印每个排序后的条目
for color in sorted_colors:
    print(f"{color['name']} {color['p']}")

关键步骤解释:

  • y.values():把字典里每个颜色对应的小字典都提取出来,变成一个可遍历的列表,这样就具备了排序的基础。
  • sorted(...):用Python内置的排序函数完成核心逻辑,key=lambda color: color['p']告诉程序要按每个颜色对象的p值作为排序依据,reverse=True则让结果从大到小降序排列,完美匹配你要的足球积分榜规则。
  • 最后的for循环:遍历排序后的列表,用f-string轻松格式化输出内容,不管JSON里有多少个条目,都会自动按规则排序打印,后续新增或删除条目也不用修改代码。

运行后输出就是你想要的效果:

blue 3
green 2
red 1

内容的提问来源于stack exchange,提问作者SkyThaKid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:38:39