2016-09-21 155 views
0

我在cassandra-3.0.6中有一個列族/表,它有一個名爲「value」的列,它被定義爲blob數據類型。無法將cassandra blob /字節字符串轉換爲整數

CQLSH查詢select * from table limit 2;返回我:

ID |名稱|值

id_001 |約翰| 0x010000000000000000

id_002 |特里| 0x044097a80000000000

如果我讀使用cqlengine(Datastax Python的驅動程序)這個值,我得到的輸出是這樣的:

{ '身份證': 'ID_001', '名': '約翰', 'value':'\ x01 \ x00 \ x00 \ x00 \ x00 \ x00'}

{'id':'id_002','name':'terry','value': '\ x04 @ \ x97 \ xa8 \ x00 \ x00 \ x00 \ x00 \ x00'}

理想情況下,「值」字段中的值是對於row1row2分別爲和1514

但是,我不知道如何將使用cqlengine提取的「值」字段值轉換爲01514。我嘗試了幾種方法,如ord(),decode()等,但沒有任何工作。 :(

問題:

  1. 這是什麼格式 '\x01\x00\x00\x00\x00\x00\x00\x00\x00''\[email protected]\x97\xa8\x00\x00\x00\x00\x00'
  2. 我怎麼可以將這些任意值轉換爲01514

注意???我在Linux上使用python 2.7.9

任何幫助或指針都會有用。

謝謝,如果直接讀取它

回答

0
  1. 斑點將被轉換爲一個字節數組在Python。這看起來像一個包含blob的十六進制值的字節數組。

  2. 一種方法是在查詢中明確進行轉換。

    select id, name, blobasint(value) from table limit 3

    應該有一個轉換方法使用Python驅動器爲好。