@Kekatoz

Что нужно скорректировать код?

есть скрипт, который добавляет данные в mysql:

for element in range(0, int(len(list_with_values) / 3), 3):
    cursor.execute("INSERT games(game_id, name, date) VALUES ({}, '{}', {})".format(
        list_with_values[element], list_with_values[element + 1], list_with_values[element + 2]))
connection.commit()


условие такое, что он идёт по каждому третьему элементу списка и добавляет его и 2 следующих в базу данных.
но происходит только одна итерация.
что исправить в коде, чтобы добавлялись все элементы списка, а не только первые три?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
1. executemany для таких случаев придумали.
2. Не используй format для формирования sql запросов.

Вот тут почитай как запросы писать в БД.

Лучше заранее разбить список на порции.

chunked = list(
    (list_with_values[i:i+3] for i in range(0, len(list_with_values), 3)))

sql = "INSERT INTO games(game_id, name, date) VALUES (%s, %s, %s)"
cursor.executemany(sql, chunked)
connection.commit()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы