Кассандра Python подготовил запросы и тип MAP - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь вставить в эту таблицу Cassandra в Python

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?

И, надеюсь, есть идеи, как это исправить?

В качестве альтернативы приветствуются некоторые рабочие примеры работы с Cassandra MAP, LIST и SET из драйвера Python.

1 Ответ

2 голосов
/ 22 октября 2019
row = Cassandra.execute(ins_hourly, (cid, uid, dt, classes))

Отсутствует квадратная скобка в выполнении.

Подготовленный оператор Python Cassandra Test

Eaxmple для типа данных Map

В качестве альтернативы вы также можете использовать связывание для связывания переменных и выполнения связанного запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...