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

Python中以datetime为键的嵌套字典排序报TypeError如何解决

问题原因

  1. 直接对字典调用sorted()时,默认仅迭代字典的键,所以返回结果只有排序后的datetime键列表,不会保留对应的嵌套字典值。
  2. 第二次报错是因为迭代字典时拿到的每个元素都是datetime对象,你在lambda里写x[0]相当于尝试对datetime对象做下标访问,datetime本身不支持这种操作,所以抛出TypeError。

正确实现

Python 3.7+ 版本(默认字典支持插入顺序保留)

直接对字典的items()返回的键值对元组排序,排序依据取元组的第一个元素(也就是datetime键),开启倒序后转字典即可:

sorted_result_devices = dict(sorted(result_devices.items(), key=lambda x: x[0], reverse=True))

执行后得到的sorted_result_devices就是按时间从新到旧排序的完整嵌套字典,保留所有原始结构。

Python 3.6及更早版本(原生字典不保证顺序)

需要用collections.OrderedDict来存储排序后的结果,确保顺序正确:

from collections import OrderedDict
sorted_result_devices = OrderedDict(sorted(result_devices.items(), key=lambda x: x[0], reverse=True))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:54:04