python 2.7
pyramid 1.3a4
sqlalchemy 7.3
sqlite3.7.9
来自sqlite提示>我能做到:
insert into risk(travel_dt) values ('')
also
insert into risk(travel_dt) values(Null)
两者都会为risk.travel_dt
生成一个空值,但是当我从金字塔中尝试这些travel_dt
值时,Sqlalchemy会给我一个错误。
在第一种情况下,我得到sqlalchemy.exc.StatementError
:
SQLite日期类型仅接受python日期对象作为输入
在第二种情况下,我得到Null is not defined
。当我使用“Null”时,我得到第一个案例错误
我为另一个关于空值的问题道歉:我已经阅读了很多材料,但一定是错过了一些简单的东西。谢谢你的帮助 Clemens Herschel
答案 0 :(得分:1)
虽然您没有深入了解您正在使用的表定义或任何示例代码,但我猜这个问题是由于混淆NULL
(数据库保留字)和None
(Python保留字)。
错误消息告诉您需要使用有效的python date
对象调用SQLA方法,而不是使用“Null”或“N”等字符串。
假设您有一个名为risk
的表,其中包含一个名为travel_dt
的列,您应该能够在该表中创建一个类似于以下内容的行:
risk.insert().values(travel_dt=None)
请注意,这只是一个代码段,您需要在engine
上下文中执行此类调用,如SA Docs SQL Expression Language Tutorial中定义的那样。