Как сделать запись сразу в два столбца?
Как сделать запись в БД в две колонки?
Есть два списка:
title = [['Приехали гости'], ['Уехали гости']]
img = [['url=1'], ['url=2']]
Надо чтобы в БД была на выходе вот такая запись:
Вот код для записи одной колонки title:
import sqlite3
conn = sqlite3.connect('mydb.db')
c = conn.cursor()
title = [['Приехали гости'], ['Уехали гости']]
img = [['url=1'], ['url=2']]
def add_db():
c.executemany("INSERT INTO Article(title) VALUES (?)", (title))
add_db()
conn.commit()
conn.close()
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте так:
title = ['Приехали гости', 'Уехали гости']
img = ['url=1', 'url=2']
records = [x for x in zip(title, img)]
c.executemany("INSERT INTO Article(title, img) VALUES (?, ?)", records)
Метод cursor.executemany(query, records) ожидает в качестве records - коллекцию значений. В вашем случае эта коллекция должна выглядеть как список кортежей:
In [33]: records
Out[33]: [('Приехали гости', 'url=1'), ('Уехали гости', 'url=2')]
или как список списков:
In [33]: records
Out[33]: [['Приехали гости', 'url=1'], ['Уехали гости', 'url=2']]

