2016-09-03 3 views
0

私はcassandraを初めて使用し、Pythonを使用してCassandraキースペースに挿入しようとしています。私はCQLで作成したテーブルmytablecassandraを持っています。ここでは変数を使用して挿入する

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

私は、テキストファイルを読み込み、変数これらの変数は

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

のような値を持っている auserafriend

を持っています

今これらの変数をカッサンドラのテーブルに挿入したい

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インジェクション攻撃が頻繁に行われます)。代わりに、あなたはそれを実行し、

session.execute(CQLString, (auser,afriend)) 
のように値を渡し、その後、クエリ文字列が

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

のような値のためのプレースホルダを持って行う必要があります

関連する問題