Как сохранить словари разной длины в одну таблицу в базе данных?

barciewicz спросил: 07 октября 2018 в 02:02 в: python

Что было бы наиболее элегантным способом сохранить несколько словарей - большинство из них следовало бы за одной и той же структурой, но некоторые имели больше / меньше ключей - в одной таблице базы данных SQL?

Шаги, которые я могу представить из них:

  1. Определите, в каком словаре больше всего ключей, а затем создайте таблицу, которая соответствует порядку ключей словаря.
  2. Сортируйте каждый словарь в соответствии с порядком столбцов.
  3. Вставьте значения каждого словаря в таблицу. Не вставляйте ничего (возможно?), Если для определенного столбца таблицы в словаре нет ключа.

У меня есть черновик кода:

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)

0 ответов