【发布时间】:2021-12-21 04:58:04
【问题描述】:
我有一个程序,每个项目为 5 个不同的环境获取 3 个键和值,并从中生成一个 JSON 文件。看起来像这样(简化)。
注意:项目的数量是可以改变的,在不同的环境中它们不能有相同的名称,它们的末尾有一个标签。
注意 2:项目名称不是“project1”“project2”,它们遵循特定的命名方案,使其独一无二。
{
"env_preprod": {
"project1": {
"consumption last month": 127.283851,
"quotas": 200,
"consumption ": 117.657964
},
"project2": {
"consumption last month": 0.000891,
"quotas": 200,
"consumption ": 0.00018
}
}
"env_prod": {
"project1": {
"consumption last month": 127.283851,
"quotas": 200,
"consumption ": 117.657964
},
"project2": {
"consumption last month": 0.000891,
"quotas": 200,
"consumption ": 0.00018
}
}
}
我希望按消耗量对 5 种不同行为中的项目进行排序,但无法完成。 我尝试使用 lambda 函数:
sort = dict(sorted(data.items(), key = lambda x: x[1]['consumption']))
我也试过了,但我没有对值进行排序:
res = {key : dict(sorted(val.items(), key = lambda ele: ele[1]))
for key, val in data.items()}
我认为此时只有一个循环可以做到这一点,但现在无法正确解决。我只需要通过增加消费值来对环境中的项目进行排序。有什么建议吗?谢谢
【问题讨论】:
-
你用的是哪个python? 2.7 还是 3?
-
使用 2.7 作为开发环境,但真正使用的是 3.8
-
目前无法写出真正的答案,但 python2 dict 无法保持顺序,请尝试使用 OrderedDict (from collection)
标签: python json dictionary nested