gpt4 book ai didi

python - 仅获取一个 MySQL 列作为列表而不是元组

转载 作者:行者123 更新时间:2023-12-01 05:49:36 26 4
gpt4 key购买 nike

我有一个小方法可以从 MySQL 数据库获取一列。它有效,但它返回一个元组,例如:

((1L,),(2L,),(3L,), ...)

我只想得到一个列表[1L, 2L, 3L,...](或者甚至转换为 int 而不是 long)。我知道我可以编写一个循环来手动执行此操作,但可能有一种更奇特、更 Python 的方式来执行此操作。

这是我的函数的代码,以防万一有某种方法可以将 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

最佳答案

返回值中的每个元组代表一行,如果该行只有1个元素,

您可以使用如下所示的列表理解来获取包含 ObjectID 的列表:

In [38]: l = ((1L,),(2L,),(3L,))

In [39]: [x[0] for x in l]
Out[39]: [1L, 2L, 3L]

在您的函数中,您可以return [x[0] for x in selectedIds]

关于python - 仅获取一个 MySQL 列作为列表而不是元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com