我有用户定义的类型和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命令。请给我一些解决方案。
答案 0 :(得分:0)
这只是一个语法错误,因为你使用双引号(&#34;这是我的推文&#34;)来表示message-&gt; txt的值。确保插入单引号,例如:
{txt: 'This is my tweet', pub_date: 'yesterday'}