如何对Python字典内的嵌套列表按{#UPTME}字段排序?
正确按
#UPTME字段排序嵌套列表的实现方法 你的错误根源很明确:你调用sort()方法的对象是外层的data字典,而字典本身没有sort()方法,你需要操作的是data["data"]对应的嵌套列表。
下面是两种可行的实现方式:
1. 原地修改列表(直接排序原列表)
使用列表的sort()方法,通过key参数指定按#UPTME字段排序:
# 示例数据结构 data = { "data": [ {"#UPTME": 1620000000, "content": "示例1"}, {"#UPTME": 1610000000, "content": "示例2"}, {"#UPTME": 1630000000, "content": "示例3"} ] } # 升序排序(默认规则) data["data"].sort(key=lambda item: item["#UPTME"]) # 如果需要降序排序,添加reverse=True参数 data["data"].sort(key=lambda item: item["#UPTME"], reverse=True)
2. 返回新排序后的列表(不修改原列表)
使用内置函数sorted(),它会返回一个新的排序后的列表,原列表保持不变:
# 升序获取新列表 sorted_data_list = sorted(data["data"], key=lambda item: item["#UPTME"]) # 降序获取新列表 sorted_data_list = sorted(data["data"], key=lambda item: item["#UPTME"], reverse=True) # 可选:将新列表赋值回data["data"] data["data"] = sorted_data_list
额外注意事项
如果嵌套列表中存在没有#UPTME字段的字典,可以用get()方法设置默认值,避免KeyError:
# 没有#UPTME字段的项会用0作为默认值参与排序 data["data"].sort(key=lambda item: item.get("#UPTME", 0))
内容的提问来源于stack exchange,提问作者Raul Chiarella
相关产品推荐
相关产品推荐

