0

コードから生成されたハッシュ値をmysqlデータベースのハッシュ値と比較するプログラムがあります。

したがって、チェック値を生成した後、私は次のようになります。

hash to be compared: 78ff0103440dcea01f36438a71bdf28f 
hash value from db: (('78ff0103440dcea01f36438a71bdf28f',),)

DBからのハッシュ値は、次のようなものを使用して出力されました。

db_hash.fetchone()

そのため、((''、)、)記号が含まれています。

しかし、比較するハッシュに同じシンボルを追加しようとしましたが、それでも正しく同等ではありません。

それは単純な比較であることになっているだけなので、私は困惑しています

if hash == result:
 do some code
else:
 do some code

あなたがこれが何であるかについての考えを持っているならば、答えてください:)

4

1 に答える 1

3

PythonのMySQLアダプターは、行を値のタプルとして返します。この場合、1つの列を含む1つの行の完全な結果セットを受け取ります。その値を取得するには、次のようにします。

dbResult # this is (('78ff0103440dcea01f36438a71bdf28f',),)
dbResult[0][0] # this is '78ff0103440dcea01f36438a71bdf28f'

もちろん、クエリが異なる場合(または行が返されない場合)、これはエラーをスローします。理想的には、len(dbResult)最初に返される行数()を確認する必要があります。各行の列数は一定になります。

于 2012-10-03T16:15:12.180 に答える