У меня есть строка данных в формате dict. Есть ли простой способ вставить его в таблицу mysql. Я знаю, что я могу написать пользовательскую функцию для преобразования dict в пользовательский sql-запрос, но я ищу более прямую альтернативу.MySQLdb вставка dict в таблицу
ответ
MySQLDB не поставляется с чем-либо, что допускает такую прямую работу. Это обычная проблема с множеством ответов, включая пользовательскую функцию для этой цели.
По моему опыту, лучше всего прятаться и просто писать параметризованный SQL большую часть времени. Если у вас есть то же самое, что происходит много, я бы подумал о факторизации его в функцию полезности.
ОДНАКО, если вы вручную ставите SQL-код с использованием параметров, тогда по большей части заботятся о безопасности и проблемах. Когда вы начинаете основывать свой SQL на словаре данных, которые пришли откуда (?), Вам нужно быть гораздо более осторожным.
Таким образом, ваш код, скорее всего, будет более читабельным и удобным и безопасным, если вы просто напишете запросы, используйте параметры и документы.
(Примечание: некоторые сторонники ОРМ, и т.д ... может не согласиться ... это мнение, основанное на большой опыт на то, что был простым, надежным и работал в нашей команде)
Ну ... В соответствии с документацией для paramstyle
:
Установить в формате '= ANSI C в формате printf, например '... WHERE name =% s'. Если для conn.execute() используется объект сопоставления, тогда интерфейс фактически использует коды «pyformat» = расширенный формат Python, например. '... WHERE name =% (name) s'. Однако API в настоящее время не позволяют спецификацию более одного стиля в paramstyle
Таким образом, это должно быть только вопрос:
curs.execute("INSERT INTO foo (col1, col2, ...) VALUES (%(key1)s, %(key2)s, ...)", dictionary)
где key1
, key2
и т.д. будут ключи от словаря.
Отказ от ответственности: Я не пробовал это сам :)
Edit: Да, попробовал. Оно работает.
- 1. Создать таблицу в MySQLdb
- 2. Python MySQLDb Вставка Ошибка синтаксиса
- 3. Python Dict, динамическая вставка
- 4. Python MySQLdb итерации через таблицу
- 5. Python mySQLdb отправка данных в динамическую таблицу
- 6. Python MySQLDB Вставка с переменными как параметры
- 7. Вставка в хэш-таблицу
- 8. Вставка в таблицу sqlite
- 9. Массовая вставка в таблицу
- 10. Вставка формы в таблицу
- 11. SQLI Вставка в таблицу
- 12. Вставка данных в таблицу
- 13. Вставка в таблицу PHP
- 14. Вставка клеток в таблицу?
- 15. Вставка значений в таблицу
- 16. Вставка данных в таблицу
- 17. Вставка массива в таблицу
- 18. Вставка переменной в таблицу
- 19. Вставка в ассоциативную таблицу
- 20. Вставка строк в таблицу
- 21. Вставка RefCursor в таблицу
- 22. Вставка данных в таблицу
- 23. Вставка переменных в таблицу
- 24. Вставка столбцов в таблицу
- 25. Вставка кратные значения Dict в дб
- 26. Вставка данных в таблицу (вставка mysqli)
- 27. Вставка в таблицу в порядке
- 28. получить обновленную таблицу из базы данных - MySQLdb
- 29. Вставка Python в таблицу mysql не работает
- 30. Python - Вставка записи из цикла for с использованием MySQLDB