在python中使用sqlite3模块时,除列名之外的cursor.description的所有元素都设置为None,因此该元组不能用于查找查询结果的列类型(与其他符合DB-API的模块不同).获取列的类型pragma table_info(table_name).fetchall()
以获取表的描述,将其存储在内存中,然后将cursor.description中的列名与整个表描述相匹配是唯一的方法吗?
不,这不是唯一的方法.或者,您也可以获取一行,迭代它,并检查各个列的Python对象和类型.除非值为None(在这种情况下SQL字段为NULL),否则这应该为您提供相当精确的指示数据库列类型.
sqlite3仅在一个地方使用,sqlite3_column_decltype
并且sqlite3_column_type
每个都没有,并且Python应用程序都不能访问它们 - 因此它们不是您可能一直在寻找的"直接"方式.