Python 比较数据库结果与字符串

0 投票
1 回答
2143 浏览
提问于 2025-04-17 14:52

我正在尝试将一个MSSQL(使用pyodbc)查询的输出与一个看起来相似的字符串元组进行比较,但Python总是告诉我它们不匹配。

def test_internship_direct_app_a_submit(self):

    address_result = SQLHelper.address_result("""
    select top 2 blah, blah, blah
            """ ) 
    print address_result[0]
    print type(address_result[0])
    print address_result[0] == ('1819 Harras Blvd', '', 'Atlantic City', 'NJ', '08401')

控制台输出: (u'1819 Harras Blvd', u'', u'Atlantic City', 'NJ', u'08401')

类型 'pyodbc.Row'

结果是 False


问题:我该如何处理数据库的输出,以便它能更容易地与一个字符串列表的元组进行比较?提前谢谢!

哦,这里是我用来获取数据的Python代码:

def address_result(sql, param1):
cnxn = pyodbc.connect(connect_string)
cursor = cnxn.cursor()

params = (param1)
cursor.execute(sql ,params)
rows = cursor.fetchall()

addresses= []
for row in rows:
    addresses.append(row)


cursor.close()
cnxn.close()
return addresses

1 个回答

2

问题在于,从数据库返回的对象是 pyodbc.Row 类型,而不是普通的元组。

在你的测试脚本末尾加上这个,就能明白了:

print tuple(address_result[0]) == ('1819 Harras Blvd', '', 'Atlantic City', 'NJ', '08401')

撰写回答