2016-09-03 8 views
0

Я новичок в cassandra и пытаюсь вставить в пространство ключей Cassandra с помощью Python. У меня есть таблица mytablecassandra, созданный с CQL:Использование переменных для вставки

cqlsh:mykeyspace>>CREATE TABLE mytablecassandra(user text PRIMARY KEY, friendlist list<text>); 

Здесь я прочитал текстовый файл и иметь переменные auser и afriend

Если эти переменные имеют значения, как

auser = 'ABC' и afriend = ['DEF','GHI','JKL']

Теперь я хочу вставить эти переменные в таблицу Cassandra

from cassandra.cluster import Cluster 
cluster = Cluster() 

session = cluster.connect('mykeyspace') 
CQLString = """INSERT INTO mytablecassandra(user,friendlist) VALUES (auser, afriend)""" 
session.execute(CQLString); 

И получаю ошибку

ErrorMessage код = 2000 [Синтаксическая ошибка в запросе CQL] нет жизнеспособной альтернативы на входе ')'

ответ

1

Ваши строки не получают разлагаются в место так, и это действительно не рекомендуется (так часто возникают атаки SQL-инъекций). Вместо этого вы должны сделать строку запроса имеет заполнители для значений как

CQLString = "INSERT INTO mytablecassandra (user, friendlist) VALUES (%s,%s)" 

затем выполнить его и передать значения как

session.execute(CQLString, (auser,afriend)) 
Смежные вопросы