我试图使用一个新的键将修改后的文档插入回Cassandra数据库。我很难确定错误信息指向的问题所在。当寻找其他遇到类似问题的人时,答案似乎与键有关,在我的情况下,None只是几个键的值。我该如何解决这个问题?
keys = ','.join(current.keys())
params = [':' + x for x in current.keys()]
values = ','.join(params)
query = "INSERT INTO wiki.pages (%s) Values (%s)" % (keys, values)
query = query.encode('utf-8')
cursor.execute(query, current)
这是查询和当前数据:
INSERT INTO wiki.pages (changed,content,meta,attachment,revision,page,editor)
VALUES (:changed,:content,:meta,:attachment,:revision,:page,:editor)
{
u'changed': '2013-02-15 16:31:49',
u'content': 'Testing',
u'meta': None,
u'attachment': None,
u'revision': 2,
u'page': u'FrontPage',
u'editor': 'Anonymous'
}
这个操作失败,出现了以下错误:
cql.apivalues.ProgrammingError:
Bad Request: line 1:123 no viable alternative at input 'None'
SELECT * FROM tablenameWHERE foo = ?
会导致no viable alternative at: foo
错误,因为它期望的是WHERE
关键字而不是标识符。(如果它提示期望什么就更好了。) - William Price