繁体   English   中英

python sqlite3中的'None'是Unicode而不是NoneType

[英]'None' is Unicode and not NoneType in python sqlite3

如果我有这样的声明:

cursor.execute("INSERT INTO MYTABLE(name, age, hair_color) VALUES (?, ?, ?)" , ("Alice", 24, None))

cursor.execute("SELECT * FROM MYTABLE WHERE Id=?", (1,))

print cursor.fetchone()[2] is None   # This is false! I want this to be true.

检索hair_color将是u'None'而不是NoneType

我知道我可以做一个简单的检查来查看它是否等于unicode“ None”,但是没有指定此条件,而是有一种方法告诉python我希望将“ None”的字段替换为NoneType。我执行fetchone()或fetchall()吗?

MYTABLE是(Id INTEGER PRIMARY KEY, name TEXT, age INTEGER, hair_color TEXT)

抱歉,我只是想通了。

事实证明,我必须明确告诉sqlite3我希望python在类型之间自动转换。

所以解决方案是这样做:

conn = sqlite3.connect(db, detect_types=sqlite3.PARSE_DECLTYPES)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM