Можно ли вставить словарь Python в текстовое поле sqlite3? - PullRequest
34 голосов
/ 13 октября 2008

Есть какие-нибудь ошибки, о которых я должен знать? Могу ли я сохранить его в текстовом поле или мне нужно использовать блоб? (Я не слишком знаком с pickle или sqlite, поэтому я хотел убедиться, что я лаю правильное дерево с некоторыми из моих идей дизайна высокого уровня.)

Ответы [ 13 ]

1 голос
/ 14 октября 2008

Другой вариант, учитывая, что ваше требование состоит в том, чтобы сохранить диктовку, а затем выплюнуть ее обратно для «удовольствия просмотра» пользователя, - это использовать модуль shelve, который позволит вам сохранять любые изменяемые данные в файле. Документы Python здесь .

1 голос
/ 14 октября 2008

SpoonMeiser верен, у вас должна быть веская причина для внесения в базу данных.

Нетрудно написать объекты Python, которые реализуют постоянство с SQLite. Затем вы можете использовать SQLite CLI для управления данными. Что, по моему опыту, стоит дополнительной работы, поскольку многие функции отладки и администрирования могут быть просто выполнены из CLI, а не написания конкретного кода Python.

На ранних этапах проекта я сделал то, что вы предлагаете, и в итоге переписал класс Python для каждого бизнес-объекта (примечание: я не сказал для каждой таблицы!) Таким образом, тело приложения может сосредоточиться на том, «что» должно быть сделано, а не на том, «как» это делается.

0 голосов
/ 13 сентября 2009

См. Это решение на SourceForge:

модуль y_serial.py :: хранилище объектов Python с SQLite

"Сериализация + постоянство :: в несколько строк кода сжимают и аннотируют объекты Python в SQLite, а затем извлекают их в хронологическом порядке по ключевым словам без какого-либо SQL. Наиболее полезный" стандартный "модуль для базы данных для хранения данных без схемы . "

http://yserial.sourceforge.net

...