gpt4 book ai didi

python - 按日期排序()抛出异常。哪个元素失败了?

转载 作者:行者123 更新时间:2023-11-28 21:56:20 24 4
gpt4 key购买 nike

我正在使用以下代码按日期对字典列表进行排序:

try:
value["spotlight"].sort(key=lambda x: datetime.datetime.strptime(x["start"], "%Y%m%d-%H%M"), reverse=True)
except:
logger.info("sort exception")
exc_type, exc_obj, exc_tb = sys.exc_info()
logger.info(exc_type)
logger.info(exc_obj)
logger.info(exc_tb.tb_lineno)

从 2 月开始,我开始看到这个异常:

<type 'exceptions.ValueError'> day is out of range for month

我如何知道哪个词典失败以便我进行调试?

PS - 该列表大约有 500 个元素...

最佳答案

不要对关键函数使用 lambda,而是编写完整的函数定义。让此函数捕获来自 strptime 的异常,并使用标识的日期字符串引发它自己的异常。

根据 https://wiki.python.org/moin/HandlingExceptions 的指导,使用评论中的建议将信息添加到现有的异常对象中

def start_key(x):
d = None
try:
d = x["start"]
return datetime.datetime.strptime(d, "%Y%m%d-%H%M")
except Exception as e:
if d:
e.args += (d,)
raise

value["spotlight"].sort(key=start_key, reverse=True)

关于python - 按日期排序()抛出异常。哪个元素失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com