我在cassandra-3.0.6中有一个列family/table,其中有一个名为“value”的列被定义为blob数据类型。在
CQLSH queryselect * from table limit 2;
返回我:
id | name | value
id_001 | john | 0x010000000000000000
id_002 | terry | 0x044097a80000000000
如果我使用cquengine(Datastax Python驱动程序)读取此值,则会得到如下输出:
{'id':'id_001', 'name':'john', 'value': '\x01\x00\x00\x00\x00\x00\x00\x00\x00'}
{'id':'id_002', 'name':'terry', 'value': '\x04@\x97\xa8\x00\x00\x00\x00\x00'}
理想情况下,“值”字段中的值分别是0
和{row1
和{
但是,我不确定如何将使用cquengine提取的“value”字段值转换为0
和{ord()
,decode()
,等等,但都没用。:(
问题:
'\x01\x00\x00\x00\x00\x00\x00\x00\x00'
或
'\x04@\x97\xa8\x00\x00\x00\x00\x00'
?在0
和{注意:我在Linux上使用python2.7.9
任何帮助或建议都会有用。在
谢谢
如果您直接读取Blob,它将被转换成Python中的字节数组。它看起来像一个包含blob的十六进制值的字节数组。
一种方法是在查询中显式地进行转换。在
select id, name, blobasint(value) from table limit 3
Python驱动程序也应该有一个转换方法。
相关问题 更多 >
编程相关推荐