UnboundLocalError:分配之前引用的局部变量“行”
我试图通过其他脚本进行数据库连接。 但脚本没有正常工作。UnboundLocalError:分配之前引用的局部变量“行”
,如果我这样做对行的“打印”然后我得到的值“空”
但是,如果使用了“选择事件*”查询,然后我从表事件的结果。
导入数据库
rows = database.database("INSERT INTO incidents VALUES(3 ,'test_title1', 'test', TO_DATE('25-07-2012', 'DD-MM-YYYY'), CURRENT_TIMESTAMP, 'sector', 50, 60)")
#print database.database()
print rows
database.py脚本:
import psycopg2
import sys
import logfile
def database(query):
logfile.log(20, 'database.py', 'Executing...')
con = None
try:
con = psycopg2.connect(database='incidents', user='ipfit5', password='test')
cur = con.cursor()
#print query
cur.execute(query)
rows = cur.fetchall()
con.commit()
#test row does work
#cur.execute("INSERT INTO incidents VALUES(3 ,'test_titel1', 'test', TO_DATE('25-07-2012', 'DD-MM-YYYY'), CURRENT_TIMESTAMP, 'sector', 50, 60)")
except:
logfile.log(40, 'database.py', 'Er is iets mis gegaan')
logfile.log(40, 'database.py', str(sys.exc_info()))
finally:
if con:
con.close()
return rows
既然你之前不宣布“行”您“尝试:”它不会被定义的块,如果有一个例外。尝试将rows = []
放在try
以上。
是的..我们解决了“分配之前引用的”UnboundLocalError:局部变量“行”问题。 Whoohoo! – desimusxvii
是啊,谢谢!但我怎么现在可以在数据库中获得我的查询?我也在我的代码中寻找缩进,但它看起来不错? – patrick
我们会看起来像你得到一个例外。你能打印这个结果吗?这是str(sys.exc_info()) – desimusxvii
更正您代码的缩进。 –