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

如何对值为字典列表的字典按Date字段升序排序并输出字典

按Date字段对嵌套字典升序排序的解决方案

没问题,我来帮你搞定这个按日期排序字典的需求!要实现你想要的效果,核心是把字符串格式的日期转换成可比较的datetime对象,然后基于这个对字典的键值对进行排序,最后重新构建有序字典。

完整代码实现

from datetime import datetime

# 你的原始字典
myDict = {
    'First': [{'Name':'Raj','Date':'28-March-2019 09:30'}],
    'Second': [{'Name':'Ajay','Date':'12-April-2020 07:25'}],
    'Third': [{'Name':'Jaya','Date':'12-April-2019 09:25'}]
}

# 对字典条目按Date字段升序排序
sorted_items = sorted(
    myDict.items(),
    # 提取每个条目里的Date字符串,转换为datetime对象作为排序依据
    key=lambda entry: datetime.strptime(entry[1][0]['Date'], '%d-%B-%Y %H:%M')
)

# 构建排序后的有序字典(Python 3.7+ 原生dict默认有序)
sorted_myDict = dict(sorted_items)

# 验证输出
print(sorted_myDict)

代码解释

  • 日期转换:datetime.strptime(entry[1][0]['Date'], '%d-%B-%Y %H:%M') 是关键步骤——它把"28-March-2019 09:30"这种格式的字符串转成datetime对象,这样程序才能正确判断日期的先后顺序。其中%d是日,%B是完整月份名称(比如March),%Y是4位年份,%H:%M是时分格式。
  • 排序逻辑:sorted()函数会根据我们指定的key对字典的键值对列表进行升序排序,正好符合你的需求。
  • 有序字典:Python 3.7及以上版本的原生dict已经会保留插入顺序,所以用dict(sorted_items)就能直接得到有序的结果。如果你的Python版本低于3.7,可以改用collections.OrderedDict:
    from collections import OrderedDict
    sorted_myDict = OrderedDict(sorted_items)
    

输出结果

运行代码后,你会得到完全符合期望的排序后的字典:

{
    'First': [{'Name': 'Raj', 'Date': '28-March-2019 09:30'}],
    'Third': [{'Name': 'Jaya', 'Date': '12-April-2019 09:25'}],
    'Second': [{'Name': 'Ajay', 'Date': '12-April-2020 07:25'}]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 00:42:39