我正在从Oracle数据库中读取数据,并希望检查该字段是否为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
答案 0 :(得分:2)
最好的方法可能是:
isinstance(columnTypes[columnIndex], cx_Oracle.DATETIME)
如果您想检查确切类型,type(obj) == myType
woudl工作,但使用isinstance
允许进行子类型输入。
答案 1 :(得分:2)
列columnTypes
是否存储类型本身或类型的表示形式,例如字符串或type
实例?
尝试获取columnTypes[columnIndex]
和type(columnTypes[columnIndex])
的输出。希望有人会给你<type 'cx_Oracle.DATETIME'>
,然后你可以将其与type(cx_Oracle.DATETIME)
进行比较。
如果您获得超级/子类,则必须以类似的方式使用isinstance
- this question可能会引起您的兴趣。