python: контейнер для карточного каталога — sqlite, dict, другое?

Я разрабатываю приложение типа карточного каталога и Python и пытаюсь решить, как хранить данные. Не веб-приложение. Я не ожидаю большого приложения или огромного количества данных.

Одной из альтернатив является маринованный словарь. Например, {id1: {автор1, заголовок1}, id2: {автор2, заголовок2}} (в реальности было бы немного сложнее). В этом есть достоинство простоты. Я мог искать элементы, перебирая записи.

Другой альтернативой является база данных sqlite. Это кажется более подходящим для задачи, включая постоянство и хорошие возможности для добавления, редактирования, поиска, с основным недостатком в том, что я не слишком хорошо знаком с базами данных sql. OTOH, это похоже на хорошую возможность учиться.

Вы бы использовали sqlite3 или что-то еще? Есть ли другие соображения по выбору?

Любые предложения по изучению sqlite помимо тех, что в этих вопросах программирование базы данных python/sql - где start и https://stackoverflow.com/questions/2855031/comprehensive-beginners-tutorial-for-python-and-sqlite


person foosion    schedule 23.10.2011    source источник


Ответы (1)


Sqlite3 — надежный выбор.

Если вам нужно только хранилище ключей и значений, модуль shelve предлагает простой в использовании словарь, такой как API.

person Raymond Hettinger    schedule 23.10.2011
comment
Документы для sqlite3 довольно хороши. Потратив пять минут на вводный раздел, вы должны начать работу (он показывает, как установить соединение, создать таблицу, вставить данные в таблицу и запросить таблицу). Он известен своей простотой в использовании. docs.python.org/library/sqlite3.html#module-sqlite3 - person Raymond Hettinger; 24.10.2011
comment
У меня были некоторые проблемы с полкой, потому что она иногда ограничивала размер объектов. Я нашел sqlitedict простым и удобным (pypi.python.org/pypi/sqlitedict) - person Fabian Pedregosa; 09.09.2014