如何将Python字典的键转换为所有嵌套字典的字符串

72qzrwbm  于 2023-01-10  发布在  Python
关注(0)|答案(1)|浏览(152)

我有一本字典:

d = {
    "A": {
        dt.date(2022, 5, 31): "AA"
    },
    dt.date(2022, 12, 12): "BB"
}

我想把所有嵌套字典的所有datetime.date键都转换成字符串。
结果应该是:

d = {
    "A": {
        "2022/05/31": "AA"
    },
    "2022/12/12": "BB"
}

我该怎么做呢?

0pizxfdo

0pizxfdo1#

可以使用递归函数处理任意嵌套:

import datetime as dt

def dt_to_str(d):
    return {k.strftime('%Y/%m/%d') if isinstance(k, dt.date) else k:
            dt_to_str(v) if isinstance(v, dict) else v
            for k, v in d.items()}

out = to_str(d)

输出:

{'A': {'2022/05/31': 'AA'}, '2022/12/12': 'BB'}

相关问题