Python如何按嵌套字典的指定字符串值对外层字典条目排序
嵌套字典指定键排序外层字典实现方案
报错原因
data_dict.items()返回的每一个元素是(外层键, 内层字典)格式的二元组,你写的lambda中直接用item[sortKey]取值,相当于尝试用字符串作为元组的索引,不符合语法规则,因此抛出异常。
注意事项
Python 3.7及以上版本原生支持字典保留插入顺序,低于该版本需要使用collections.OrderedDict存储排序结果。
正确代码
Python 3.7+ 版本
# 定义你要用来排序的嵌套字典键 sort_key = "key2" # 排序后直接转为字典 data_dict = dict(sorted(data_dict.items(), key=lambda item: item[1][sort_key]))
Python 3.6及更低版本
from collections import OrderedDict sort_key = "key2" data_dict = OrderedDict(sorted(data_dict.items(), key=lambda item: item[1][sort_key]))
执行以上代码后得到的字典就是按嵌套字典指定键的字符串值升序排列的结果,和你预期的输出一致。
内容的提问来源于stack exchange,提问作者k1ngarthur
相关产品推荐
相关产品推荐

