你的问题我不清楚。您混合了SQL数据结构和Python数据结构,不清楚这是从Python调用还是从SQL调用。您的查询应该包含一些您试图执行的代码。在
对于SQL表中这样一个简单的数据,您可以将SQL表看作Python字典。NUMSTRdict表示第一个SQL表,我将X元组列表改为dict:NUMSTR = {1: 'one', 2: 'two', 3: 'three'}
X = {'three': 'odd', 'one': 'odd', 'two': 'even'}
def show_even_odd(in_numbers):
numbers_info = []
for i in in_numbers:
try:
num_name = NUMSTR[i]
eo = X[num_name]
except KeyError:
eo = '???'
numbers_info.append(eo)
print(' | '.join(['%4s' % x for x in numbers_info]))
print(' | '.join(['%4s' % x for x in in_numbers]))
def test():
show_even_odd([1, 2, 3])
我将数据存储在numbers_info中,以便在一行中显示它。在单独的行中显示每个数字的信息会更容易。在
编辑
如果您的问题是获取每个元组的第一个值并显示其数值,那么这样的代码如下所示:
^{pr2}$
现在必须定义get_number()函数。使用global cursor这可能有用:def get_number(number_name):
result = number_name
cursor.execute('SELECT numeric FROM my_table WHERE String = ?', number_name)
for txt in cursor.fetchall():
result = txt[0]
return result
在这段代码中,我在SELECT中使用了?来生成准备好的语句。ODBC驱动程序应将其替换为number_name。这样的操作可以通过Python:"SELECT ... WHERE String = '%s'" % (number_name)来完成,但是准备好的语句要好得多。它们可以防止SQL注入,数据库可以更好地缓存这类语句的查询计划。在