6

SHA1 ハッシュを生成し、hashlib の hexdigest を介してバイナリ表現を取得し、それらを bytea 列を持つ Postgres DB に格納する小さなスクリプトがあります。Postgres で次のようなクエリがあります (省略形):

SELECT * FROM some_table WHERE some_hash in decode(another_hash, 'hex')

クエリを実行すると、次のようなコードがいくつかあります。

cur.execute(query)
for hash_rep in cur:
    print bhash

さて、そのprintステートメントでは、理解できない文字が出力されるか、次のように変更すると:

print str(psycopg2.Binary(bhash))

私は次のようなものを得ます:

'\214p\203\030\017K\247\373o\253'::bytea

元の文字列に戻す正しい方法は何ですか? 元の表現は「30d22d5d64efe4c5333e」のようなもので、比較のために元の文字列に戻したいと思います。明らかな何かが欠けているかどうかはわかりませんが、

4

1 に答える 1