0

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」と入力します

誤り


質問:データベースからの出力を操作して、タプル内の文字列のリストと簡単に比較できるようにするにはどうすればよいですか?前もって感謝します

ああ、これが私がデータをフェッチするために使用する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
4

1 に答える 1

2

問題は、データベースから返されるオブジェクトのタイプが pyodbc.Row であり、実際のタプルではないことです。

これをテスト スクリプトの最後に追加して、悟りを得ます。

print tuple(address_result[0]) == ('1819 Harras Blvd', '', 'Atlantic City', 'NJ', '08401')
于 2013-02-05T21:32:54.960 に答える