[英]Comparing tuple elements against integers with Python
我很难转换数据。 我从数据库中选择数据,该数据以元组格式返回。 我尝试使用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
快速又肮脏:
print curList[i][0], testData['data']
或如何:
for db_tuple, json_int in zip(cursor, parse):
print db_tuple[0], json_int
SQL结果总是以row列的形式出现。 即使每一行只有一列,也是如此。
接下来,您正在对db
对象执行查询(无论可能是什么),但都在游标上进行了迭代。 如果这一切都奏效的话,那就要靠运气了。 您通常会在游标对象上执行查询。
如果只希望返回一行,则可以使用cursor.fetchone()
检索该行。 for row in cursor
循环中的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
值列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.