Python 使用sqlalchemy在sqlite3中插入来自金字塔框架的空日期
从sqlite提示符>我可以执行以下操作:Python 使用sqlalchemy在sqlite3中插入来自金字塔框架的空日期,python,sqlite,date,sqlalchemy,pyramid,Python,Sqlite,Date,Sqlalchemy,Pyramid,从sqlite提示符>我可以执行以下操作: python 2.7 pyramid 1.3a4 sqlalchemy 7.3 sqlite3.7.9 这两种方法都会导致一个新行的risk.travel\u dt值为空,但当我从pyramid中尝试这些travel\u dt值时,Sqlalchemy给了我一个错误 在第一种情况下,我得到sqlalchemy.exc.StatementError: SQLite日期类型仅接受python日期对象作为输入 在第二种情况下,未定义我得到的Null。当我使
python 2.7
pyramid 1.3a4
sqlalchemy 7.3
sqlite3.7.9
这两种方法都会导致一个新行的risk.travel\u dt
值为空,但当我从pyramid中尝试这些travel\u dt
值时,Sqlalchemy给了我一个错误
在第一种情况下,我得到sqlalchemy.exc.StatementError
:
SQLite日期类型仅接受python日期对象作为输入
在第二种情况下,未定义我得到的Null
。当我使用“Null”时,我得到第一个case错误
我为关于nulls的另一个问题道歉:我读了很多材料,但肯定错过了一些简单的东西。谢谢你的帮助
Clemens Herschel虽然您没有提供对正在使用的表定义或任何示例代码的任何见解,但我猜问题是由于混淆了
NULL
(数据库保留字)和None
(Python保留字)
错误消息告诉您需要使用有效的pythondate
对象调用SQLA方法,而不是使用诸如“Null”或“”之类的字符串
假设您有一个名为risk
的表,其中包含一个名为travel\u dt
的列,您应该能够在该表中创建类似以下内容的行:
insert into risk(travel_dt) values ('')
also
insert into risk(travel_dt) values(Null)
请注意,这只是一个片段,您需要在
引擎上下文中执行这样的调用,就像在中定义的那样。抱歉,我没有提供示例代码或表定义;我尽量简洁。好的推论。谢谢你的帮助;那是我的困惑。
risk.insert().values(travel_dt=None)