有人可以提供帮助,以下代码可能会失败吗?产生了一个AttributeError:'NoneType'对象没有属性'strftime'。
我检查了数据&一些空白细胞现在出现在Cols 5中,以前从未出现过。
我可以对下面的脚本做一个简单的修复吗?
connection = cx_Oracle.connect('User','PassWord,'adhoc_serv')
cursor = connection.cursor()
SQL="SELECT * FROM CAT34"
cursor.execute(SQL)
filename = r"C:\Projects\CAT34\SQL_Export\CAT34.csv"
with open(filename, "wb") as fout:
writer = csv.writer(fout)
writer.writerow([i[0] for i in cursor.description ]) # heading row
for row in cursor.fetchall():
cols = list(row)
cols[2] = cols[2].strftime("%d/%m/%Y")
cols[5] = cols[5].strftime("%d/%m/%Y")
writer.writerow(cols)
答案 0 :(得分:0)
当检索的值为null时,cx_Oracle返回None。如果你想避免这种情况,你可以这样做:
cols[2] = cols[2] and cols[2].strftime("%d/%m/%Y")
这将给你一个None(当值为null时)或者如果它不是null则编码为字符串的日期。
如果你想要一个""而不是无你可以做到这一点
cols[2] = cols[2] and cols[2].strftime("%d/%m/%Y") or ""
最后一个选项:您可以简单地调整查询,以便它执行此操作:
select to_char(datecol1, 'dd/mm/YYYY') from CAT34;
这会将日期作为字符串而不是日期值返回。
希望其中一个选项可以满足您的需求!