Python - вставьте 300 переменных в SQLite - PullRequest
0 голосов
/ 11 ноября 2018

Я получаю 300 значений от датчика температуры каждую минуту. Эти 300 значений необходимо вставлять, поскольку они принимаются каждую минуту, в базу данных SQLite.

Я создал 302 строки в базе данных SQLite с первым столбцом S_ID и вторым столбцом timestamp. Здесь S_ID автоматически увеличивается при каждом добавлении строки, а значение по умолчанию для столбца timestamp - это текущее системное время. Я запрограммировал так, что каждую минуту я получаю 300 значений теплового датчика, помещаю все 300 значений в список с именем data и вставляю data в базу данных. Теперь мне нужно знать, как я могу написать executemany оператор без записи всех 300 имен столбцов и ? ниже.

data = [(300, 2, 4, ..., 5.5)] #these are 300 values that are inserted into a list when received from heat sensor
c.executemany('INSERT INTO heat_table (col3, col4, ..., col302) VALUES (?, ?, ..., ?)', data)

1 Ответ

0 голосов
/ 11 ноября 2018

Я бы создал эти имена со списком, а затем присоединился бы к ним:

query = ('INSERT INTO heat_table (' +
         ', '.join('col%d' % i for i in range(3, len(data) + 3)) +
         ') VALUES (' +
         ', '.join('?' * len(data)) +
         ')')
...