Python cassandra更新语句错误';输入不匹配';re';期待K#u WHERE';?

Python cassandra更新语句错误';输入不匹配';re';期待K#u WHERE';?,python,python-3.x,cassandra,cqlsh,Python,Python 3.x,Cassandra,Cqlsh,我尝试使用python客户端更新cassandra数据库,如下所示 def update_content(session, id, content) update_statement = """ UPDATE mytable SET content='{}' WHERE id={} """ session.execute(update_statement.format(content, id)) 它适用于大多数情况

我尝试使用python客户端更新cassandra数据库,如下所示

def update_content(session, id, content)
  update_statement = """
    UPDATE mytable SET content='{}' WHERE id={}
  """
  session.execute(update_statement.format(content, id))
它适用于大多数情况,但在某些情况下,内容是表单的字符串

content = "Content Message -'[re]...)"

这将导致调用应用程序时出现错误异常:为避免此类问题,应停止使用
.format
创建CQL语句,并开始使用允许您:

  • 避免出现未转义特殊字符的问题,例如,
  • 允许执行基本类型检查
  • 获得更好的性能,因为查询将被解析一次,并且只有数据将通过网络发送
  • 您将获得令牌感知的查询路由,这意味着查询将直接发送到保存分区数据的其中一个副本
您的代码需要修改如下:

prep_statement = session.prepare('UPDATE mytable SET content=? WHERE id=?')

def update_content(session, id, content):
  session.execute(prep_statement, [content, id])
请注意,该语句只需准备一次,因为它包括到集群节点的往返过程,以执行查询解析

prep_statement = session.prepare('UPDATE mytable SET content=? WHERE id=?')

def update_content(session, id, content):
  session.execute(prep_statement, [content, id])