【发布时间】:2023-03-03 09:21:23
【问题描述】:
我正在尝试使用“Python-Driver”为 Cassandra(一个 NoSQL 数据库)创建一类命令。您可以使用session.execute() 在您的数据库上运行 SQL 命令。无论如何,我正在尝试创建一个函数来创建一个键空间。
代码如下:
def createKeySpace(self, title, class_type='SimpleStrategy', replication_factor='3'):
self.session.execute("CREATE KEYSPACE {} WITH REPLICATION = \
{ 'class' : '{}', 'replication_factor' : {} };\
".format(title, class_type, replication_factor))
问题是,如果我尝试使用此功能,我会收到错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "db_commands.py", line 12, in createKeySpace
".format('CREATE', title, class_type, replication_factor))
KeyError: " 'class' "
我认为值得注意的一点:
我注意到我在 Sublime Text 中的字符串中的 = 符号是红色,而通常的字符串颜色是黄色。 如果我从字符串中取出“CREATE”,等号将恢复为黄色!
这是因为 Python 已经将 CREATE 识别为 SQL 语法并且不喜欢我用 .format() 声明字符串的方式吗?任何帮助都会很棒! :)
【问题讨论】:
-
错误似乎与您的代码不匹配。
-
你用的是什么版本的python?
-
2.7? :P 希望它也适用于 3!
标签: python cassandra keyerror nosql