在Python字典中按嵌套字典排序

前端之家收集整理的这篇文章主要介绍了在Python字典中按嵌套字典排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下结构
{
    'searchResult' : [{
            'resultType' : 'station','ranking' : 0.5
        },{
            'resultType' : 'station','ranking' : 0.35
        },'ranking' : 0.40
        }
    ]
}

并希望得到

{
    'searchResult' : [{
            'resultType' : 'station','ranking' : 0.4
        },'ranking' : 0.35
        }
    ]
}

尝试了代码没有成功

result = sorted(result.items(),key=lambda k: k[1][0][1]["ranking"],reverse=True)

解决方法

如果您可以就地更改对象.
a = {
    'searchResult' : [{
                       'resultType' : 'station','ranking' : 0.5
                      },{
                       'resultType' : 'station','ranking' : 0.35
                      },{
                      'resultType' : 'station','ranking' : 0.40
                      }]
  }

a["searchResult"].sort(key=lambda d: d["ranking"],reverse=True)

或者你可以制作一份深层拷贝以保留原件

from copy import deepcopy


srt_dict = deepcopy(a)
srt_dict["searchResult"].sort(key=lambda d: d["ranking"],reverse=True)

猜你在找的Python相关文章