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

Parse date from string and insert with Sqlalchemy tosqlite

我的问题有两个子问题(是一个词吗?):

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

我有来自 rss 提要的日期时间,格式如下:

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

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

乙。使用 Sqlalchemy

插入到 sqlite

我的问题是,我找不到可以看到如何将列定义为日期时间的代码示例。它应该看起来像这样吗?

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

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

A。查看 datetime.strptime with appropriate 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)

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

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()

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

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

table def/saving 可能需要稍微调整一下,但这是总体思路。另外,一些关于 SQLAlchemy datatypes and SQLite Datatypes.

的文档

希望对您有所帮助。