смешивание заполнителей, executemany и имен таблиц - PullRequest
1 голос
/ 15 марта 2019

Я могу перебирать объект python со следующим кодом, однако я хотел бы иметь возможность использовать заполнители для схемы и имени таблицы, обычно я делаю это с {}.{} и методами .format(), но как Вы объединяете два?

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

Ответы [ 3 ]

1 голос
/ 15 марта 2019

Зависит от того, какой 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)

check PEP 498 - Интерполяция буквенных строк

другой вариант - простойformat

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

но я считаю первый вариант короче и чище

0 голосов
/ 15 марта 2019
cur.executemany(
  """INSERT INTO schema.{table_name} (x,y,z) values (%s, %s, %s)""".format(table_name=your_table_name),
  top_sample
)

поместите имя таблицы вместо вашего_таблицы

0 голосов
/ 15 марта 2019

Я не уверен, в чем проблема. Вы можете очень хорошо использовать format вот так:

cur.executemany("INSERT INTO {}.{} (x,y,z) values (%s, %s, %s)".format('hello', 'world'), top_sample)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...