Python cql库无法使用查询替换更新布尔列

Python cql库无法使用查询替换更新布尔列,python,cassandra,cql,Python,Cassandra,Cql,简介 我正在使用python库访问Cassandra 1.2数据库(CQL 3.0)。“我的表”包含一个布尔列,如下所示: CREATE TABLE test ( id text, value boolean, PRIMARY KEY (id) ); 问题 当我尝试使用cql库执行这样的查询时: UPDATE test set value=True where id = 'someid' 使用此代码: import cql ... cq

简介 我正在使用python库访问Cassandra 1.2数据库(CQL 3.0)。“我的表”包含一个布尔列,如下所示:

CREATE TABLE test (
     id         text,
     value      boolean,
     PRIMARY KEY (id)
);
问题 当我尝试使用cql库执行这样的查询时:

UPDATE test set value=True where id = 'someid'
使用此代码:

import cql
...
cql_statement = "UPDATE test set value=:value where id = :id"
rename_dict = {'id':'someid', 
               'value': True}
cursor.execute(cql_statement, rename_dict)
我得到了这个错误:

Bad Request: Invalid STRING constant (True) for value of type boolean
似乎cql库正在尝试执行以下操作:

UPDATE test set value='True' where id = 'someid'
与此相反:

UPDATE test set value=True where id = 'someid'
问题

是否有任何解决方法可供此方法或更好的方法/库使用?(我将Cassandra 1.2与CQL 3.0 CFs一起使用,因此pycassa不是一个选项)

提前谢谢

Boolean引用,因为这个问题被问到了,尽管Debian软件包还没有更新


因此,解决方案是从源代码安装库。

您的ID类型应该是整数而不是字符串。另外,您使用的是链接到的CQL驱动程序版本1.0.4还是最新版本(1.4.0)?嗨,Richard,我使用的是最新版本(1.4.0)。请详细说明一下不使用字符串作为键的情况好吗?id在表定义中是一个int,但您正在将其设置为字符串“someid”。非常感谢Richard,我编辑了这个问题来解决它!