Каким был бы самый элегантный способ сохранить несколько словарей - большинство из которых следуют одной и той же структуре, но некоторые имеют больше / меньше ключей - в одной таблице базы данных SQL?
Шаги, которые я могу придумать, следующие:
- Определите, в каком словаре больше всего ключей, а затем создайте таблицу, которая соответствует порядку ключей в словаре.
- Сортировка каждого словаря по порядку столбцов.
- Вставить значения каждого словаря в таблицу. Не вставляйте ничего (возможно?), Если для определенного столбца таблицы в словаре нет ключа.
У меня есть черновик кода:
man1dict = {
'name':'bartek',
'surname': 'wroblewski',
'age':32,
}
man2dict = {
'name':'bartek',
'surname': 'wroblewski',
'city':'wroclaw',
'age':32,
}
with sqlite3.connect('man.db') as conn:
cursor = conn.cursor()
#create table - how do I create it automatically from man2dict (the longer one) dicionary, also assigning the data type?
cursor.execute('CREATE TABLE IF NOT EXISTS People(name TEXT, surname TEXT, city TEXT, age INT)')
#show table
cursor.execute('SELECT * FROM People')
print(cursor.fetchall())
#insert into table - this will give 'no such table' error if dict does not follow table column order
cursor.execute('INSERT INTO People VALUES('+str(man1dict.values())+')', conn)