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_value
withのようなものを与えるでしょう?
が、正規表現については何も知らないので...