从字符串解析日期并使用Sqlalchemy tosqlite插入

时间:2015-10-01 13:14:29

标签: python sqlite datetime sqlalchemy datetime-parsing

我的问题有两个子问题(就是一个字?):

一个。从字符串中解析日期。

我有rss feed的日期时间,格式如下:

u'Wed, 30 Sep 2015 18:59:39 +0000'

从上面的字符串创建日期时间最“pythonic”的方法是什么?我尝试用正则表达式来做,但我有大约20行代码,我希望有更简单的方法来做,最好没有正则表达式。我也不知道将Sep更改为09的简便方法。

B中。使用Sqlalchemy

插入sqlite

我的问题是,我找不到代码示例,我可以看到如何将列定义为datetime。应该是这样的吗?

t = Table('t', medatata, Column('my_date', Datetime)

然后只将datetime的对象传递给数据库?

1 个答案:

答案 0 :(得分:2)

A 的。使用适当的datetime.strptime查看formatting

from datetime import datetime
fmt = '%a, %d %b %Y %H:%M:%S %z'
datetime.strptime('Wed, 30 Sep 2015 18:59:39 +0000', fmt)

输出

datetime.datetime(2015, 9, 30, 18, 59, 39, tzinfo=datetime.timezone.utc)

。是的,将datetime对象保存到日期库中。例如,您可能有一个 test db定义如下。

class Test(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    test_date = db.Column(db.DateTime)

    def __init__(self, test_date=None):
        if test_date is None:
            test_date = datetime.utcnow()

然后将您的日期保存为原始帖子的变体。

rec = Test(datetime.strptime(...your RSS data here..., fmt))

表def / save可能需要调整一下,但这是一般的想法。此外,还有一些关于SQLAlchemy datatypesSQLite Datatypes的文档。

希望有所帮助。