我一直在为自己做一个小项目,我使用 riak、python 和 flask 框架。像在大多数情况下一样,我想存储存储在 riak 中的对象的创建日期,以及其他一些日期(如会话到期日期)。当我第一次尝试只存储日期对象时,我遇到了一个错误,解决方案是使用如下代码:
def date(obj):
return obj.isoformat() if hasattr(obj, 'isoformat') else obj
def json_date():
return json.dumps(datetime.now(), default=date)
我已经测试过它,并且很高兴地使用它,但后来我遇到了一些更复杂的需求,即 N 分钟后的会话到期日期,所以我很快写了这样的东西:
def json_session_expiration_date():
return json.dumps(datetime.now() + timedelta(minutes=15), default=date)
现在我的应用程序的核心已经工作了,我想在开始编写更多功能之前清理愚蠢和次优的代码,我遇到的一个问题是这三个功能 - 我不清楚日期的目标是什么(obj) 函数,因此我不能轻松地将它们全部加入一个函数中。任何建议表示赞赏!