如何基于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
相关产品推荐
相关产品推荐

