Python: как вставить словарь в базу данных sqlite?

У меня есть база данных sqlite с таблицей со следующими столбцами:

id(int) , name(text) , dob(text) 

Я хочу вставить в него следующий словарь:

 {"id":"100","name":"xyz","dob":"12/12/12"} 

Клавиши слова – это имена столбцов. Как я могу это достичь?

4 Solutions collect form web for “Python: как вставить словарь в базу данных sqlite?”

Если посмотреть на документацию, вы можете добавить одну строку:

 c.execute("INSERT INTO stocks VALUES (?,?,?)", [dict["id"], dict["name"], dict["dob"]]) 

Или вы можете использовать список и добавить несколько строк за один раз:

 # Larger example that inserts many records at a time purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00), ('2006-04-06', 'SELL', 'IBM', 500, 53.00), ] c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases) 

Если, например, c = conn.cursor() , и ваш словарь называется dict и таблицей tablename , то вы можете написать

 c.execute('insert into tablename values (?,?,?)', [dict['id'], dict['name'], dict['dob']]) 

Который будет вставлять элементы словаря в таблицу по мере необходимости.

Вот способ, который сохраняет безопасность параметров. (Может потребоваться полировка в отделе tablename)

 def post_row(conn, tablename, rec): keys = ','.join(rec.keys()) question_marks = ','.join(list('?'*len(rec))) values = tuple(rec.values()) conn.execute('INSERT INTO '+tablename+' ('+keys+') VALUES ('+question_marks+')', values) row = {"id":"100","name":"xyz","dob":"12/12/12"} post_row(my_db, 'my_table', row) 

Согласно ответам Gareth, если вы используете MySQLdb вы можете использовать executemany и передать список значений, которые вы можете получить непосредственно из своего dict используя dict.values()

  • Выберите и обновите в той же транзакции с помощью python sqlite
  • Как сделать ON DELETE CASCADE работать в sqlite 3.7.4?
  • Как я могу регистрировать запросы в Sqlite3 с помощью Python?
  • Слияние баз данных SQLite сводит меня с ума. Помогите?
  • Как выполнить запрос на основе даты и времени с использованием SQLite в Python?
  • Подстановка Python SQLite с помощью подстановочных знаков в LIKE
  • Использование python для создания базы данных sqlite из нескольких файлов csv
  • Автоматическая загрузка таблицы SQL путем чтения данных из текстового файла
  • Использование Python быстро вставляет много столбцов в Sqlite \ Mysql
  • sqlite3.OperationalError: непризнанный токен: «01T00» Python datestamp
  • peewee - Определить модели отдельно от инициализации Database ()
  •  
    Interesting Posts for Van-Lav

    Tensorflow – получить количество выборок в очереди?

    Могу ли я использовать свой собственный класс Python с numpy или какой-либо другой библиотекой матриц?

    Как отсортировать OrderedDict с помощью отсортированного списка ключей?

    Ссылка Python re.sub назад не назад

    Плюсы и минусы для разных форматов конфигурации?

    Python Pandas Crosstabs

    ПРЕДУПРЕЖДЕНИЕ: '' Недействительное имя пакета; используйте только пакет с разделенными пакетами. setup.py

    Программа Fortran не работает в зависимости от оператора записи перед вызовом подпрограммы

    Вставить объект python в mongodb

    Преобразование нумерованных пиньинов в пиньинь с метками тонов

    django развертывание отдельных веб-сайтов и api-endpoints на герою

    Python: Экспорт сообщений как .msg с использованием pywin32.client

    Длина конечного генератора

    Как вычислить условную вероятность значений в dataframe pandas-python?

    Попробовать / уловить или проверить скорость?

    Python - лучший язык программирования в мире.