当我使用cx_Oracle模块提取数据时,没有返回值代替Oracle NULL。此时,我正在使用下面的函数将None转换为空字符串。
def xstr(s):
if s is None:
return ''
return str(s)
有没有办法使cx_Oracle模块返回一个空字符串而不是None?
答案 0 :(得分:3)
您可以使用输出类型处理程序和out转换器来进行这种转换。像这样的东西。
def OutConverter(value):
if value is None:
return ''
return value
def OutputTypeHandler(cursor, name, defaultType, size, precision, scale):
if defaultType in (cx_Oracle.STRING, cx_Oracle.FIXED_CHAR):
return cursor.var(str, size, cursor.arraysize, outconverter=OutConverter)
connection.outputtypehandler = OutputTypeHandler
上面的代码会将数据库返回的所有空字符串转换为空字符串。