python中def什么时候用_在python中解析日期而不使用defau

我正在使用python的dateutil.parser工具来解析从第三方feed获得的一些日期。它允许指定一个默认日期(其本身默认为今天),用于填充解析日期中缺少的元素。虽然这通常是有帮助的,但是对于我的用例来说并没有合理的默认值,我更愿意将部分日期当作根本没有得到日期一样对待(因为这几乎总是意味着我得到了混乱的数据)。我已经写了以下工作:from dateutil import parser

import datetime

def parse_no_default(dt_str):

dt = parser.parse(dt_str, default=datetime.datetime(1900, 1, 1)).date()

dt2 = parser.parse(dt_str, default=datetime.datetime(1901, 2, 2)).date()

if dt == dt2:

return dt

else:

return None

(这段代码只查看日期,因为这是我关心的应用程序的全部内容,但是类似的逻辑可以扩展到包括时间组件。)

我想知道(希望)有更好的办法。至少可以说,对同一个字符串进行两次解析,看看它是否填充了不同的默认值,这似乎是对资源的严重浪费。

以下是针对预期行为的一组测试(使用nosetest生成器):import nose.tools

import lib.tools.date

def check_parse_no_default(sample, expected):

actual = lib.tools.date.parse_no_default(sample)

nose.tools.eq_(actual, expected)

def test_parse_no_default():

cases = (

('2011-10-12', datetime.date(2011, 10, 12)),

('2011-10', None),

('2011', None),

('10-12', None),

('2011-10-12T11:45:30', datetime.date(2011, 10, 12)),

('10-12 11:45', None),

('', None),

)

for sample, expected in cases:

yield check_parse_no_default, sample, expected

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值