无法在Cassandra中插入用户定义的类型

时间:2018-04-16 01:03:05

标签: python flask cassandra

我有用户定义的类型和Cassandra中的表格:

CREATE TYPE message (
  txt text,
  pub_date text
);


CREATE TABLE user_messages(
    username text,
    messages list<frozen <message>>,
    PRIMARY KEY (username)
);

我试图通过Python代码在表中插入数据:

session.execute('''update user_messages set messages = {txt :'''+ '"'+request.json.get('text') +'"'+''',pub_date:'''+ str(int(time.time())) +'''} where username=''' + username)

但是对于txt字段的输入,它无法正常工作:“这是我的新推文”。 错误的控制台输出是:

SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 1:64 no viable alternative at input ',' (...set messages = {txt :["This is my new twee]t",...)">

如果我使输入txt字段更简单,例如:“tweet”,那么错误是

SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 1:49 no viable alternative at input ',' (...set messages = {txt :["twee]t",...)">

我错过了什么吗? 有没有其他方法将数据插入用户定义的数据类型? 我也尝试使用INSERT查询,但失败了。所以我尝试使用UPDATE命令。请给我一些解决方案。

1 个答案:

答案 0 :(得分:0)

这只是一个语法错误,因为你使用双引号(&#34;这是我的推文&#34;)来表示message-&gt; txt的值。确保插入单引号,例如:

{txt: 'This is my tweet', pub_date: 'yesterday'}