我有一个大多数时间正确的数据库,但是有一些像这样坏了: Sat Dec 22 12:34:08 PST 20102015
Sat Dec 22 12:34:08 PST 20102015
没有无效的年份,这对我有用:
end_date = soup('tr')[4].contents[1].renderContents() end_date = time.strptime(end_date,"%a %b %d %H:%M:%S %Z %Y") end_date = datetime.fromtimestamp(time.mktime(end_date))
但是,一旦我用无效的年份击中一个对象,我就会得到ValueError: unconverted data remains: 2,这很好,但是我不确定如何最好地去除不良字符。它们的范围是2到6 unconverted characters。
ValueError: unconverted data remains: 2
unconverted characters
有指针吗?我只想切片,end_date但我希望有一个日期时间安全的策略。
end_date
是的,我会砍掉多余的数字。假设它们总是附加在日期字符串上,则可以这样进行:
end_date = end_date.split(" ") end_date[-1] = end_date[-1][:4] end_date = " ".join(end_date)
我打算尝试从异常中获取多余的位数,但是在我安装的Python版本(2.6.6和3.1.2)上,该信息实际上并不存在。它只是说数据不匹配格式。当然,您可以一次只继续舍弃一位数字,然后重新解析,直到没有异常。
您还可以编写一个仅与有效日期匹配的正则表达式,包括年份中正确的数字,但这似乎有点过头。