python 取得巢状字典中的最近日期

oipij1gg  于 2022-11-28  发布在  Python
关注(0)|答案(2)|浏览(117)

我试图在嵌套字典中获取最近的日期。日期是字符串,可以在键forth下的可变数量的字典中找到。这是我的方法:

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

def get_max(data, key):
    tmp = []
    for item in data.values():
        tmp.append(item.get(key))
    tmp = [
        datetime.strptime(date, "%Y-%m-%d").date().strftime("%Y-%m-%d")
        for date in tmp
        if date
    ]

    return max(tmp)

out = data["first"]["second"]
out = get_max(data=out, key="forth")
out

有什么我可以改进的吗?

imzjd6km

imzjd6km1#

我认为比较日期而不将其转换为对象也是可行的
您也可以使用以下方法

data = {
    "first": {
        "second": {
            "third_1": {"forth": "2022-01-01"},
            "third_2": {"forth": None},
            "third_3": {"forth": "2021-01-01"},
        }
    }
}
max(filter(lambda x: x["forth"], data["first"]["second"].values()), key=lambda x: x["forth"])
ws51t4hk

ws51t4hk2#

尝试:

Max = max(d for a,b in data["first"]["second"].items() for c,d in b.items() if d != None)

相关问题