Cómo usar la base de datos TinyDB en Python

Cómo usar la base de datos TinyDB en Python

Este artículo cubrirá una guía sobre la instalación y el uso del "Tinydb"Módulo que se puede usar para crear y administrar bases de datos en formato de archivo JSON. Disponible como un módulo de terceros para programas de Python, Tinydb está escrito en Pure Python y viene con muchas funciones útiles que se pueden usar para consultar y modificar archivos de base de datos. No admite consultas de estilo SQL, pero utiliza su propia API pitónica para buscar archivos de base de datos. Tinydb No requiere que cree un servidor de base de datos y se puede acceder directamente a todo a través de archivos almacenados en un dispositivo de almacenamiento sin necesidad de una conexión de servidor. Además de los documentos o los objetos de Python de tipo diccionario, también admite tablas para que pueda almacenar datos en múltiples tablas y mantener cada tabla independiente de otros.

Instalación de TinyDB en Linux

TinyDB está disponible en repositorios oficiales de Ubuntu, por lo que puede instalarlo desde el Administrador de paquetes utilizando el siguiente comando:

$ sudo apt install python3-tinydb

Puedes instalar Tinydb En otras distribuciones de Linux del Administrador de paquetes. Un método alternativo para instalar Tinydb en Ubuntu y otras distribuciones de Linux es usar el "pepita" gerente de empaquetación.

Puede instalar PIP Package Manager en Ubuntu usando el siguiente comando:

$ sudo apt install python3-pip

Puede buscar el administrador de paquetes PIP en repositorios oficiales de su distribución de Linux e instalarlo desde allí. También puede instalar PIP Package Manager siguiendo las instrucciones oficiales de instalación disponibles aquí. Una vez que se instala PIP Package Manager en su sistema Linux, use el siguiente comando para instalar Tinydb módulo:

$ PIP3 Instalar TinyDB

Sintaxis básica y uso

Para crear un nuevo Json archivo de base de datos compatible con Tinydb, Use las siguientes declaraciones de Python:

de tinydb import tinydb
db = tinydb ('db.json ')
Imprimir (DB)

La primera declaración importa el módulo TinyDB principal para que sus métodos puedan usarse en un programa de Python. A continuación, se crea una nueva instancia de la clase TinyDB suministrando un ".archivo json "como argumento principal. Esta declaración creará una nueva base de datos o cargará una base de datos JSON existente creada por TinyDB.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

Dado que se ha creado una nueva base de datos, actualmente no hay documentos ni tablas de datos en la base de datos. Para insertar un nuevo documento (Diccionario de Python) en la tabla, use el siguiente código:

de tinydb import tinydb
db = tinydb ('db.json ')
db.insertar ('nombre': 'John', 'Rank': 2)
db.insertar ('nombre': 'Peter', 'Rank': 1)
Imprimir (DB)

El método "Insertar" se puede usar para insertar documentos o diccionarios en la base de datos. Debe suministrar un diccionario como argumento con su par de valores clave requerido. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

Como puede ver en la salida, la base de datos ahora contiene dos documentos, asignados a la tabla "_default". Si abres el "DB.archivo json "en un editor de texto, debería verse así:

Para asignar un documento a una tabla específica, primero deberá crear una nueva tabla. Puede crear una nueva tabla llamando al método "tabla". Aquí hay una muestra de código:

de tinydb import tinydb
db = tinydb ('db.json ')
db.insertar ('nombre': 'John', 'Rank': 2)
db.insertar ('nombre': 'Peter', 'Rank': 1)
tabla = db.tabla ('frutas')
mesa.insertar ('manzanas': 50)
Imprimir (DB)

Como puede ver en la muestra de código, se ha llamado al método "tabla" para crear una nueva tabla que se almacenará en la base de datos. Solo necesita suministrar un nombre como argumento. Una vez que se crea una nueva tabla, el resto del procedimiento es el mismo. En lugar de llamar al método "insertar" en la base de datos predeterminada, ahora llama al método de insertar en la tabla recién creada.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

La base de datos ahora contiene dos tablas. Si abre la base de datos en un editor de texto, debería ver la nueva tabla agregada a la base de datos:

Tenga en cuenta que todos los métodos que se pueden llamar a la base de datos predeterminada también se pueden usar con tablas.

Consulta de documentos en la base de datos

Para buscar documentos en la base de datos, deberá importar la clase "Consulta" desde el módulo TinyDB y usar el método "Búsqueda". Aquí hay una muestra de código:

de tinydb import tinydb, consulta
db = tinydb ('db.json ')
db.insertar ('nombre': 'John', 'Rank': 2)
db.insertar ('nombre': 'Peter', 'Rank': 1)
Q = Query ()
resultado = db.búsqueda (Q.nombre == 'John')
Imprimir (resultado)

Se crea una nueva instancia de la clase "Consulta" y luego se llama a un método de búsqueda en la base de datos. Usando la notación de puntos, puede seleccionar una clave o campo de documento y agregar su término de búsqueda requerido en el lado derecho. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

['nombre': 'John', 'Rank': 2]

Si no hay coincidencias, se devolverá una lista vacía. Puede llamar al método de búsqueda en una tabla creada manualmente también.

de tinydb import tinydb, consulta
db = tinydb ('db.json ')
db.insertar ('nombre': 'John', 'Rank': 2)
db.insertar ('nombre': 'Peter', 'Rank': 1)
tabla = db.tabla ('frutas')
mesa.insertar ('manzanas': 50)
Q = Query ()
resultado = tabla.búsqueda (Q.manzana < 100)
Imprimir (resultado)

La muestra de código muestra el uso del método de búsqueda en una tabla específica. Observe en el código que un operador de comparación diferente ('<' sign) has been used to query the database. After running the above code sample, you should get the following output:

['manzanas': 50]

Actualización y eliminación de documentos

Para actualizar un documento existente en la base de datos, debe usar el método "Actualizar". Aquí hay una muestra de código:

de tinydb import tinydb, consulta
db = tinydb ('db.json ')
db.insertar ('nombre': 'John', 'Rank': 2)
db.insertar ('nombre': 'Peter', 'Rank': 1)
Q = Query ()
db.actualización ('rango': 3, Q.nombre == 'John')
Imprimir (DB.todo())

Usando la clase de consulta explicada anteriormente, puede actualizar el valor de un campo existente en la base de datos. Pase el valor para modificarse como el primer argumento al método de actualización y luego pasar la consulta como segundo argumento. El método "All" se puede usar para obtener todos los documentos disponibles en la base de datos. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida donde el rango de "John" se ha actualizado a 3 de 2:

['Nombre': 'John', 'Rank': 3, 'Nombre': 'Peter', 'Rank': 1]

Para eliminar un documento, deberá usar el método "eliminar" y la sintaxis de consulta explicada anteriormente. Aquí hay una muestra de código:

de tinydb import tinydb, consulta
db = tinydb ('db.json ')
db.insertar ('nombre': 'John', 'Rank': 2)
db.insertar ('nombre': 'Peter', 'Rank': 1)
Q = Query ()
db.eliminar (Q.nombre == 'John')
Imprimir (DB.todo())

Debe pasar una consulta al método eliminar para que los documentos asociados puedan coincidir y eliminar de la base de datos. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

['nombre': 'Peter', 'Rank': 1]

Conclusión

TinyDB ofrece numerosas funciones de conveniencia y ayudante para crear y administrar bases de datos basadas en JSON. Si bien puede manejar archivos JSON utilizando el módulo "JSON" en Python, TinyDB es mucho más que eso e incluye un sistema de consulta integral que se puede usar para obtener resultados rápidamente con declaraciones simples de un revestimiento.