Python: Как мне сохранить много словарей на диск? - PullRequest
0 голосов
/ 25 сентября 2019

Я индексирую тысячи jsons и хочу сохранить их на диск и позже получить быстрый доступ к ним.Какие типы решений следует искать?Будет ли какое-то преимущество в том, чтобы держать их всех как отдельных людей?Есть ли простой способ аккуратно передать эти данные в sql?Должен ли я смотреть на нереляционные БД?

jsons - это вложенные словари, некоторые с большими таблицами в них.Другие части JSON имеют одну запись и могут быть легко сохранены в виде таблицы.Есть ли какой-нибудь простой способ отложить все таблицы и отделить их от отдельных метаданных в файле?

Заранее благодарим за любые предложения.

1 Ответ

0 голосов
/ 25 сентября 2019

если каждый json индексируется по ключу и если вы имеете в виду json строку с синтаксисом json, то вы можете использовать модуль dbm https://docs.python.org/3.5/library/dbm.html#module-dbm

Если вы имеете в виду с json структуру, которая была загруженаиз json или структуры, которую можно преобразовать в строку json, вы можете использовать пример shelve https://docs.python.org/3.5/library/shelve.html

с dbm:

with dbm.open('myjsons', 'c') as db:
    db["key1"] = '{ "a": "value", "b", "othervalue"}'
    db["key2"] = '[ 1, 2, "three", 4.0 ]'

    jsonstr = db.get("key1", None)

пример с полкой

with shelve.open('spam') as db:
        db["key1"] = { "a": "value", "b", "othervalue"}
        db["key2"] = [ 1, 2, "three", 4.0 ]

        jsonstr = db.get("key1", None)

Обратите внимание, что вы не можете изменять данные двух процессов одновременно.

Если это потребуется, возможно, вам придется взглянуть на sqlitedict, mongodb, couchdb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...