这是我的脚本的缩短版本:
import MySQLdb
src_db = MySQLdb.connect(**some_connection)
src_cursor = src_db.cursor()
v = src_cursor.execute('SELECT node_id FROM stats WHERE time_unit >= 1388534400')
v
最终属于long
类型,我无法理解。我希望有一个生成器可以返回1元素元组(我只要求一列)。它返回一个long值,即从db返回的行数。为什么呢?
当我尝试迭代它时:
node_ids = {int(x[0]) for x in v}
我收到以下错误:
TypeError: 'long' object is not iterable
答案 0 :(得分:4)
您需要阅读python database API specification, PEP-249。
基本上,在使用游标对象执行查询后,您可以在游标对象中查询结果。
cursor.execute(my_sql)
for record in cursor.fetchall():
# do stuff
答案 1 :(得分:2)
src_cursor.execute(SELECT_QUERY)
将返回与您的查询匹配的行数。
迭代查询结果:
for row in src_cursor.fetchall():
一次获得一行:
row = src_cursor.fetchone()