У меня есть следующие:Динамическая длина арг SQL
sql = 'INSERT INTO home_title VALUES (%s, %s, %s, %s, %s)'
Однако длина аргументов 57. Как я динамически создать (% S,% s, ...) на основе умножения 57?
У меня есть следующие:Динамическая длина арг SQL
sql = 'INSERT INTO home_title VALUES (%s, %s, %s, %s, %s)'
Однако длина аргументов 57. Как я динамически создать (% S,% s, ...) на основе умножения 57?
Вы можете создавать их с:
sql = 'INSERT INTO home_title VALUES ({})'.format(', '.join(['%s'] * 57))
Это интерполяцию 57 '%s'
строки соединяются вместе с запятой и пробелом.
Demo с меньшим количеством аргументов:
>>> 'INSERT INTO home_title VALUES ({})'.format(', '.join(['%s'] * 5))
'INSERT INTO home_title VALUES (%s, %s, %s, %s, %s)'
Попробуйте это:
", ".join(["%s"] * 57)
Почему вы не просто сцепить строки непосредственно? Должно быть быстрее и проще, чем использовать синтаксис форматирования, нет? http://www.skymind.com/~ocrow/python_string/ – claj
@claj: извините? Вы не используете форматирование строк для параметров SQL, чтобы не открывать себя атаке SQL. Заполнители '% s' не используются для форматирования строк здесь. –
Хорошо! «Нет!» тогда. Благодарю. – claj