【发布时间】:2022-01-13 00:35:20
【问题描述】:
我正在尝试编写一个 pytest 夹具,它返回一些 List[sa.engine.row.LegacyRow] 类型的测试数据。
问题在于 sqllite 将 datetime 对象转换为 str。
import sqlalchemy as sa
from datetime import datetime
# test data
data = {'id': '1',
'date': datetime(2019, 12, 9, 14, 11, 2, 442076)}
sql = "SELECT " + ", ".join([f":{col} as {col}" for col in data]) # SELECT :col1 as col1, :col2 as col2
engine = sa.create_engine("sqlite:///:memory:")
with engine.begin() as conn:
row = conn.execute(sa.text(sql), data).fetchall()
print(row)
print(type(row[0][1])) # str
如何保留 datetime 对象?
【问题讨论】:
-
sqlite 没有datetime object (type)。也许查看connect method的detect_types参数
标签: sqlite sqlalchemy