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

Python中如何对多层嵌套字典按项目consumption值升序排序

问题原因

  • 第一种写法逻辑错配:你是对顶层的环境条目(env_preprod/env_prod这类键)做排序,而非对每个环境内部的项目列表排序。
  • 第二种写法缺少排序字段指定:lambda表达式直接取ele[1]是完整的项目属性字典,没有指定用consumption字段作为排序依据;另外注意你给出的JSON结构里consumption键名末尾带了空格,如果实际数据也是这个命名,直接写['consumption']会触发KeyError,属于容易忽略的细节坑。

正确实现方案

Python 3.7及以上版本原生支持字典插入顺序保留,直接用如下写法即可:

# 如果你的实际数据中consumption键名没有尾部空格,把下方的'consumption '改成'consumption'即可
sorted_data = {
    env: dict(sorted(projects.items(), key=lambda item: item[1]['consumption ']))
    for env, projects in data.items()
}

如果需要兼容Python 3.7以下的版本,使用OrderedDict保证排序顺序:

from collections import OrderedDict

sorted_data = {
    env: OrderedDict(sorted(projects.items(), key=lambda item: item[1]['consumption ']))
    for env, projects in data.items()
}

逻辑说明

  • 外层遍历所有环境,保留原有的环境键顺序
  • 对每个环境下的所有项目条目按consumption值做升序排序,排序后重新生成字典
  • 最终输出的结构和原有结构完全一致,仅每个环境内的项目顺序调整为按消费值从小到大排列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:45:02