2

我正在从 Oracle 数据库中读取数据,并想检查该字段是否为 column 类型cx_Oracle.DATETIME

我尝试了以下方法:

if columnTypes[columnIndex] == cx_Oracle.DATETIME:

if columnTypes[columnIndex] is cx_Oracle.DATETIME:

都不工作。

如果我做:

print columnTypes[columnIndex]

它返回:

<type 'cx_Oracle.DATETIME'>

编辑:

它通过将类型存储在变量中来工作:

dbDateType = cx_Oracle.DATETIME

if columnTypes[columnIndex] == dbDateType

4

2 回答 2

2

最好的方法可能是:

isinstance(columnTypes[columnIndex], cx_Oracle.DATETIME)

如果您想检查确切的类型,可以type(obj) == myType工作,但使用isinstance允许子类型。

于 2013-06-21T12:23:13.343 回答
2

该列是否columnTypes存储类型本身或类型的表示,例如字符串或type实例?

尝试获取 和 的columnTypes[columnIndex]输出type(columnTypes[columnIndex])。希望有人会给你<type 'cx_Oracle.DATETIME'>,然后你可以比较type(cx_Oracle.DATETIME)

如果你得到一个超类/子类,你将不得不以isinstance类似的方式使用——这个问题可能很有趣。

于 2013-06-21T12:24:17.447 回答