Работа с массивными данными JSON в Python действительно удручает. Допустим, у вас есть около тысячи данных, хранящихся в JSON-файле, и вы хотите провести поиск по определенным данным. Я знаю, думать об этом как-то… Обычно вы просто выполняете цикл for.
for i in data.items():
if i["name"] == "John Doe":
print("Finally, found you!")
Но есть простой способ сделать это. Благодаря LemonDB. Просто инициализируйте объект базы данных lemon и выполните встроенную операцию.
from lemondb import LemonDB
db = LemonDB('test.json')
# You can use dict queries
db.find_one({'name': 'John Doe'})
# Or just built-in search queries
from lemondb import Query; query = Query()
db.find_one(query.name == 'John Doe')
# Lambda function is also supported
db.find_one(lambda x: x['name'] == 'John Doe')
Но это все — нет, есть еще кое-что. В предыдущем выпуске LemonDB теперь поддерживает различные типы объектов, такие как datetime
, и многое другое, что обычный JSON не может правильно сериализовать. Не верите мне? Вот пример:
from lemondb import LemonDB
from datetime import datetime
db = LemonDB('test.json')
db.insert({'name': 'John Doe', 'created-at': datetime.now()})
# Filtering the item
print(db.find_one({'name': 'John Doe'})['created-at'])
# ...
Откровенно говоря, LemonDB — это документо-ориентированная база данных, похожая на mongodb или любую другую базу данных, основанную на ключевых значениях. На самом деле, lemondb была вдохновлена mongodb, но более легковесной, с около <= 1000 строк кода в целом. — тип базы данных NoSQL, в которой данные хранятся в двоичных файлах документов. Этот тип базы данных связывает каждый документ с уникальным ключом, который принимает форму строки, пути или URI. Ключи используются для поиска и извлечения отдельных документов из базы данных.
Дополнительную информацию можно найти @ Github