Python数据库查询的实时输出
我有一段代码,长得像这样:
conn=sybpydb.connect(user=args.u, password=args.p,servername=args.s)
cur = conn.cursor()
cur.execute(sql)
print(cur.connections.messages)
这个代码执行大概需要5分钟,然后才会打印出我的结果。我在想,有没有办法在代码执行的时候,就一行一行地打印输出,而不是等到全部执行完了再一次性打印出来呢?
1 个回答
0
filmor说得对:要获取游标运行的结果。
sybpydb这个包是Sybase提供的一个PEP 249的实现。所以,你得到的Cursor对象有一些方法,比如fetchone和fetchall。
如果你想逐行获取结果并对其进行处理,你的代码可以这样写:
# Preparation your connection and cursor for fetching results
conn = sybpydb.connect(user=args.u, password=args.p, servername=args.s)
cur = conn.cursor()
cur.execute(sql)
# Reading all result one by one
for row in cur.fetchall():
# Do something with your current results
print(row)
# Closing cursor and connection
cur.close()
conn.close()