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

如何优化嵌套字典中获取最新日期的Python代码?

代码优化点解析

1. 修复缺失的依赖导入

原代码未导入datetime模块,运行会直接抛出NameError,必须补充导入语句。

2. 移除无意义的日期格式转换

ISO 8601格式的日期字符串(如YYYY-MM-DD)本身可以直接按字符串比较大小,无需先转成datetime对象再转回字符串,属于完全冗余的操作。

3. 简化列表生成逻辑

原代码先通过循环append收集所有值,再二次过滤转换,可以合并成一步完成,减少内存占用和代码行数。

4. 增强边界情况处理

如果所有子字典的forth键值都是None或无效值,调用max()会抛出ValueError,需要添加空值判断,避免程序崩溃。

5. 优化嵌套字典的遍历灵活性

原代码硬编码访问data["first"]["second"],如果字典嵌套层级变化或结构更复杂,代码会直接失效。可以实现递归/迭代的通用遍历方法,自动查找所有嵌套字典中的目标键。


优化后的代码示例

基础优化版本(适配当前固定结构)

import datetime

data = {
    "first": {
        "second": {
            "third_1": {"forth": "2022-01-01"},
            "third_2": {"forth": None},
            "third_3": {"forth": "2021-01-01"},
        }
    }
}

def get_max_date(data, key):
    # 直接过滤并收集有效日期字符串
    valid_dates = [item.get(key) for item in data.values() if item.get(key)]
    if not valid_dates:
        return None  # 处理无有效日期的边界情况
    return max(valid_dates)

out = get_max_date(data=data["first"]["second"], key="forth")
print(out)  # 输出: 2022-01-01

通用遍历版本(支持任意嵌套字典)

import datetime

data = {
    "first": {
        "second": {
            "third_1": {"forth": "2022-01-01"},
            "third_2": {"forth": None},
            "third_3": {"forth": "2021-01-01"},
            "third_4": {
                "fourth": {"forth": "2023-01-01"}
            }
        }
    }
}

def collect_all_dates(data, target_key):
    valid_dates = []
    for value in data.values():
        if isinstance(value, dict):
            # 递归遍历嵌套字典
            valid_dates.extend(collect_all_dates(value, target_key))
            # 检查当前字典是否包含目标键
            date_val = value.get(target_key)
            if date_val:
                valid_dates.append(date_val)
    return valid_dates

def get_max_date(data, target_key):
    valid_dates = collect_all_dates(data, target_key)
    if not valid_dates:
        return None
    return max(valid_dates)

out = get_max_date(data=data, target_key="forth")
print(out)  # 输出: 2023-01-01

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:00:48