3

我是 Python 新手,我想创建一个这样的字符串:

print("{} INNER JOIN {}".format(table1, table2))

问题是table1andtable2存储在一个列表中tables_list = ['table1','table2'],我不知道该列表中有多少个值,所以如果我在该列表中只有一个项目,则打印结果将是:

table1

没有加入。

我想我应该继续循环,tables_list但我似乎无法弄清楚format在这种情况下如何使用。任何帮助,将不胜感激。

4

3 回答 3

2

您可以join与切片结合使用。

" INNER JOIN ".join(tables_list[:2])

虽然看起来您正在尝试构建 SQL 查询,但我警告您,您应该警惕滚动自己的查询构建器。查看您正在使用的任何数据库库的文档,以确保您没有重写他们已经可以为您做的事情。

于 2013-06-27T14:08:23.873 回答
1

看起来您正在编写 SQL。为了帮助降低注入 SQL 的风险,大多数 Python 数据库库都提供了自己的字符串格式化形式(也称为绑定变量)。在 Python 中使用绑定变量通常如下所示。

query_results = cursor.execute("?INNER JOIN ?", ("table1", "table2"))
于 2013-06-27T14:12:44.973 回答
1

你可以这样做:

>>> tables_list = ['table1','table2']
>>> print("{} INNER JOIN {}".format(*tables_list))
table1 INNER JOIN table2
于 2013-06-27T14:06:47.137 回答