使用Python将元组元素与整数进行比较

时间:2015-07-27 13:15:04

标签: python list compare tuples

我很难转换数据。我从我的数据库中选择数据,该数据以元组格式返回。我尝试使用list()转换它们,但我得到的只是一个元组列表。我试图将它们与我从解析我的JSON收到的整数进行比较。转换和比较这两个最简单的方法是什么?

from DBConnection import db 
import pymssql
from data import JsonParse

db.execute('select id from party where partyid = 1')
parse = JsonParse.Parse()

for row in cursor:
    curList = list(cursor)

i = 0 

for testData in parse:
    print curList[i], testData['data']
    i += 1

输出:

(6042,) 6042

(6043,) 6043

(6044,) 6044

(6045,) 6045

2 个答案:

答案 0 :(得分:0)

又快又脏:

print curList[i][0], testData['data']

或者怎么样:

for db_tuple, json_int in zip(cursor, parse):
   print db_tuple[0], json_int

答案 1 :(得分:0)

SQL结果始终为,它们是列的序列;即使每行只有一列,也是如此。

接下来,您正在db对象上执行查询(无论可能是什么),但是正在遍历游标;如果这个工作完全取决于运气。您通常会对游标对象执行查询。

如果您希望只返回一行,则可以使用cursor.fetchone()检索该行。您的for row in cursor循环实际上是跳过第一行

您可以使用:

cursor = connection.cursor()
cursor.execute('select id from party where partyid = 1')
result = cursor.fetchone()[0]

检索第一行的第一列,或者您可以使用元组赋值:

cursor = connection.cursor()
cursor.execute('select id from party where partyid = 1')
result, = cursor.fetchone()

如果确实需要匹配多行,可以使用列表推导来提取所有id列:

cursor = connection.cursor()
cursor.execute('select id from party where partyid = 1')
result = [row[0] for row in cursor]

现在您有一个id值列表。