繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM