1

Happybase/python を使用して hbase からデータを取得しています。すでにいくつかのフィルタリングを使用していますが、何らかの理由で機能しません。

スキャンコードのフィルターは次のようになります。

f = "SingleColumnValueFilter ('input', '', =,'substring:{}')".format(keywork)
res = pTable.scan(reverse=True,limit=1000, filter= f.encode('utf-8'))

どちらが機能するか 現在、このinput列には次のようなレコードがあります。

"{'institution_id': '023', 'application_id': '01', 'channel_id...}"

問題は、私keywordが言うように設定した場合:

keywork = "instition_id"

それは機能しますが、明らかにそれは私が必要としているものではないので、探している値と連結すると:

keywork = "instition_id': '"+ my_value

私は得るthriftpy.transport.TTransportException: TTransportException(type=4, message='TSocket read 0 bytes')

新しいテストの後、問題は一重引用符にあると結論付けましたが、その理由や修正方法がわかりません。試してみましたがkeywork = "instition_id\': \'"keywork = 'instition_id\': \''どれもうまくいきませんでした。それはおそらくばかげたことですが、それは私を夢中にさせます。

そして、私は正規表現について考えています。おそらく、どの文字でもうまくいくと伝えるためにinstitution_id?: ?my_valuewithのようなものを与えるでしょう?が、正規表現については何も知らないので...

4

1 に答える 1