我有一个小方法可以从 MySQL 数据库中获取一列。它有效,但它返回一个元组,如:
((1L,),(2L,),(3L,), ...)
我只想得到一个列表[1L, 2L, 3L,...]
(或者甚至转换为 int 而不是 long)。我知道我可以编写一个循环来手动完成,但可能有一种更奇特、更蟒蛇的方式来做这件事。
这是我的函数的代码,以防万一有某种方法可以将 MySQL 结果直接放入列表中而我还没有听说过!
def getFTPSentNotamIds():
selectedIds = None
try:
# Connect to database
db = MySQLdb.connect(host=Constants.database_host,
user=Constants.database_user,
passwd=Constants.database_passwd,
db=Constants.database_name)
# Create a cursor to execute queries
cursor = db.cursor()
# Get every ObjectID of those objects which are Selected=1
cursor.execute('SELECT ObjectID FROM MYTABLE WHERE Selected=1')
# Get the NOTAMS
selectedIds = cursor.fetchall()
except MySQLdb.Error, e:
print 'ERROR ' + str(e.args[0]) + ': ' + str(e.args[1])
return selectedIds