TypeError:并非在CQL中的字符串格式化期间转换所有参数

时间:2016-02-03 20:59:59

标签: cassandra cqlsh

我正在尝试使用以下代码将变量字符串插入到Cassandra表中:

b64_enc = "R21haWw="
class SimpleClient:
    session = None

    def create_schema(self):
        self.session.execute("""CREATE KEYSPACE raas WITH replication = {'class':'SimpleStrategy', 'replication_factor':3};""")
        self.session.execute("""
            CREATE TABLE raas.result (
                userb64enc text PRIMARY KEY,
                statusflag int,
                statusstr text
            );
        """)
        log.info('Simplex keyspace and schema created.')

    def load_data(self):

        self.session.execute("""INSERT INTO raas.result (userb64enc, statusflag, statusstr) VALUES(%s,0,'Success');""",  (b64_enc))
        log.info('Data loaded.')

但我得到了

TypeError: not all arguments converted during string formatting

消息。我也试过用?代替%s,但我得到了同样的错误。对这个错误的原因有什么想法?

1 个答案:

答案 0 :(得分:3)

我回答了我自己的问题 - %s必须在引号中,因为它是文本类型。