我是编程新手,从 python 开始我在帖子中找到了这个脚本(下面的链接)query = 'SELECT * FROM {}'.format(table) c.execute(query)如何为 SQLite 表名使用变量它有效,但现在我必须增加一些复杂性并且不知道如何......我之前有这个:def add(order, theme): parameters = [order, theme] c.execute("INSERT INTO TABLE_NAME VALUES(NULL, ?,?)", parameters)所以我尝试使用相同的,但可以自由选择表的名称。尝试这样的事情,但真的不知道它的语法:def add(order, theme): table = input("with what table do you want to work with? ") parameters = [order, theme] insert = 'INSERT INTO {} VALUES(NULL, ?,?)'.format(table, parameters) c.execute(insert)我怀疑它不起作用希望你能帮忙!:)
2 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
以下行{}用变量的内容替换table并将结果存储在变量查询中。 format适用于任何字符串:
query = 'SELECT * FROM {}'.format(table)
另一方面,通过将字符串中的c.execute替换?为列表中的值来完成的替换类型parameters:
c.execute("INSERT INTO TABLE_NAME VALUES(NULL, ?,?)", parameters)
您可以将它们结合起来以达到您想要的效果:
table = input("with what table do you want to work with? ")
query = 'INSERT INTO {} VALUES(NULL, ?, ?)'.format(table)
parameters = [order, theme]
c.execute(query, parameters)
侃侃无极
TA贡献2051条经验 获得超10个赞
你在混合东西。
Format 是 Python 字符串对象的一种方法,用于根据代码中的变量动态生成字符串。在您的第一个示例中定义数据库名称是正确的。
问题标记作为查询值的占位符是 SQL 的特性,并且必须像第二个示例中那样在没有格式的情况下使用。
要修复您的代码,首先使用格式构建查询的字符串模板来定义数据库名称。然后,使用 execute 执行结果字符串并传递针对问号的参数。
添加回答
举报
0/150
提交
取消