无法将cassandra blob/bytes字符串转换为integ

2024-06-28 14:49:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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(),等等,但都没用。:(

问题:

  1. 这是什么格式? '\x01\x00\x00\x00\x00\x00\x00\x00\x00''\x04@\x97\xa8\x00\x00\x00\x00\x00'?在
  2. 如何将这些任意值转换为0和{}?在

注意:我在Linux上使用python2.7.9

任何帮助或建议都会有用。在

谢谢


Tags: nameid定义valuetablejohnfamilyterry
1条回答
网友
1楼 · 发布于 2024-06-28 14:49:03
  1. 如果您直接读取Blob,它将被转换成Python中的字节数组。它看起来像一个包含blob的十六进制值的字节数组。

  2. 一种方法是在查询中显式地进行转换。在

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

    Python驱动程序也应该有一个转换方法。

相关问题 更多 >