Python 3 Timedelta溢出错误 [英] Python 3 Timedelta OverflowError

查看:31
本文介绍了Python 3 Timedelta溢出错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个大型数据库,正在将其加载到内存缓存中。我有一个流程可以做到这一点,每天迭代数据。

最近,此进程开始引发以下错误:

OverflowError: date value out of range

start_day = start_day - datetime.timedelta(days = 1)

这是在Ubuntu 14.04.5上的Python 3.4.3中运行的

推荐答案

您已到达datetime.date.min,即1年1月1日:

>>> from datetime import date, timedelta
>>> date.min
datetime.date(1, 1, 1)
>>> date.min - timedelta(days=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: date value out of range

如果您从datetime.date.today()开始,那么您的代码需要736K多一点的步骤才能达到目标:

>>> date.today().toordinal()
736766

您的代码可能在某处有错误,减法太频繁。

这篇关于Python 3 Timedelta溢出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆