Python 比较数据库结果与字符串
我正在尝试将一个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')