我很难转换数据。我从我的数据库中选择数据,该数据以元组格式返回。我尝试使用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
答案 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
值列表。