小编典典

如何从Python日期时间对象中删除未转换的数据

python

我有一个大多数时间正确的数据库,但是有一些像这样坏了: 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

有指针吗?我只想切片,end_date但我希望有一个日期时间安全的策略。


阅读 215

收藏
2020-12-20

共1个答案

小编典典

是的,我会砍掉多余的数字。假设它们总是附加在日期字符串上,则可以这样进行:

end_date = end_date.split(" ")
end_date[-1] = end_date[-1][:4]
end_date = " ".join(end_date)

我打算尝试从异常中获取多余的位数,但是在我安装的Python版本(2.6.6和3.1.2)上,该信息实际上并不存在。它只是说数据不匹配格式。当然,您可以一次只继续舍弃一位数字,然后重新解析,直到没有异常。

您还可以编写一个仅与有效日期匹配的正则表达式,包括年份中正确的数字,但这似乎有点过头。

2020-12-20