2016-09-21 119 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驱动器为好。