混合占位符,executemany和表名

时间:2019-03-15 16:38:17

标签: python executemany

我可以使用以下代码遍历python对象,但是我希望能够使用占位符作为模式和表名,通常我使用{}.{}.format()方法,但是如何将两者结合起来?

cur.executemany("INSERT INTO schema.table_name (x,y,z) "
                        "values (%s, %s, %s)", top_sample)

3 个答案:

答案 0 :(得分:1)

根据您使用的python,可以尝试使用f-string

schema = "schema"
table_name = "table_name"

cur.executemany(f"INSERT INTO {schema}.{table_name} (x,y,z) values (%s, %s, %s)", top_sample)

检查PEP 498 -- Literal String Interpolation

另一个选择是简单的format

cur.executemany("INSERT INTO {schema}.{table_name} (x,y,z) values (%s, %s, %s)".format(schema=schema, table_name=table_name), top_sample)

但是我发现第一个选择更简短,更简洁

答案 1 :(得分:0)

我不确定是什么问题。您可以像这样很好地使用format

cur.executemany("INSERT INTO {}.{} (x,y,z) values (%s, %s, %s)".format('hello', 'world'), top_sample)

答案 2 :(得分:0)

[\-!,.:;—/]

将表格名称替换为your_table_name