提问者:小点点

卡桑德拉·蟒蛇准备查询和MAP类型


我正试图用Python插入到这个Cassandra表中

CREATE TABLE IF NOT EXISTS hourly (
    cid TEXT,
    uid BIGINT,
    day DATE,
    classes MAP<INT, BOOLEAN>,
    PRIMARY KEY (cid, uid, day) )

有了这份准备好的声明:

ins_hourly = cass.prepare(
    "INSERT INTO hourly (cid, uid, day, classes)"
    " VALUES (?, ?, ?, ?)" )

使用这段代码(数据库已打开并插入到其他表,因此连接有效):

cid = 'foo'
uid = 11380
dt = '2019-10-14'
hr = 11
classes = {hr: True}
row = Cassandra.execute(ins_hourly, cid, uid, dt, classes)

我捕获了异常:“为 bind() 提供的参数太多(得到 12 个,预期为 4)”。

绑定函数是如何将我的4个参数转换为12个的?

希望有什么办法来解决这个问题?

或者,一些使用卡桑德拉MAP,LIST和SET的工作示例,从Python驱动程序将不胜感激。


共1个答案

匿名用户

row = Cassandra.execute(ins_hourly, (cid, uid, dt, classes))

执行中缺少括号。

Python Cassandra编写的语句测试

Eaxmple用于地图数据类型

或者,您也可以使用bind来绑定变量并执行绑定查询。