Я хотел использовать executemany в моей программе для хранения 20 записей сразу, Вот что говорится в документации ...MySQLdb executemany использует список в качестве входных данных?
c.executemany(
"""INSERT INTO breakfast (name, spam, eggs, sausage, price)
VALUES (%s, %s, %s, %s, %s)""",
[
("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95),
("Not So Much Spam Plate", 3, 2, 0, 3.95),
("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95)
])
Однако, у меня есть свои значения в списке, и не хотелось бы сделайте 18 версий выше, используя индекс в моем списке.
Вот мой код ниже ...
db = connect_to_db()
cursor = db.cursor()
sql = "INSERT INTO gkey (keyword, date, time, position) VALUES (%s, %s, %s, %s)"
params = [(str(keywords[0]), date, time, position[0])]
cursor.executemany(sql, params)
db.commit()
Это прекрасно работает, и он совершит первое ключевое слово в списке, наряду с указанием даты, времени и положения, я не хочу иметь повторите Params 19 раз, как показано ниже ...
db = connect_to_db()
cursor = db.cursor()
sql = "INSERT INTO gkey (keyword, date, time, position) VALUES (%s, %s, %s, %s)"
params = [
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
]
cursor.executemany(sql, params)
db.commit()
Выше пример того, что я пытаюсь избежать (индекс должен быть увеличен для того, чтобы работать, я знаю;))
я эрро r, когда я пытаюсь передать весь список в качестве значения, и мне нужно передать их по одному, какие-нибудь идеи? Могут ли многие сделать это, или я должен делать цикл и обновлять их по одному за раз? Но я уверен, что я попробовал это, и у меня такая же ошибка? Однако я не заметил этого.
Большое вам спасибо! Таким образом, вы можете использовать цикл при определении переменной? Я предполагаю, что это будет иметь другие приложения при передаче параметров для функций и т. Д.? – jjjjj
Это понимание списка http://www.diveintopython.net/native_data_types/mapping_lists.html – vartec
Спасибо за ссылку – jjjjj