Introducción
PickleDB es una base de datos ligera de tipo clave-valor, escrita en Python puro y que no requiere instalar servidores adicionales ni dependencias. Esta biblioteca ofrece una solución simple para almacenar pequeños volúmenes de datos en formato JSON, lo que la convierte en la elección ideal para prototipos rápidos, utilidades CLI, archivos de configuración y microproyectos.
La principal ventaja de PickleDB es su facilidad de uso, manteniendo la funcionalidad suficiente para resolver una amplia gama de tareas de almacenamiento de datos. La biblioteca admite varios tipos de datos: cadenas, números, listas, diccionarios y valores booleanos.
¿Qué es PickleDB y dónde se usa?
PickleDB es una base de datos NoSQL que almacena datos como pares clave-valor en un archivo JSON. La biblioteca se creó como alternativa para casos donde usar sistemas de bases de datos completos como PostgreSQL o MySQL resulta excesivo.
Los principales casos de uso de PickleDB incluyen:
- Almacenamiento de configuraciones y ajustes de usuario
- Caché de resultados intermedios de cálculos
- Guardado de tokens de autorización y claves API
- Registro de logs simples y contadores
- Creación de prototipos rápidos con persistencia de datos
- Desarrollo de aplicaciones CLI con almacenamiento local
Instalación y configuración inicial
Para instalar PickleDB se usa el gestor de paquetes estándar de Python:
pip install pickledb
Una vez instalada, la biblioteca está lista para usarse sin configuración adicional:
import pickledb
# Crear o conectar a una base de datos
db = pickledb.load('database.db', auto_dump=True)
El parámetro auto_dump=True garantiza el guardado automático de todos los cambios en el archivo, asegurando la integridad de los datos incluso si el programa finaliza inesperadamente.
Arquitectura y principios de funcionamiento
Estructura de almacenamiento de datos
PickleDB usa JSON como formato de almacenamiento, lo que garantiza la legibilidad de los datos y su portabilidad entre diferentes sistemas. El archivo de la base de datos es un documento JSON común con la siguiente estructura:
{
"simple_key": "valor de cadena",
"numeric_key": 42,
"boolean_key": true,
"list_key": ["elemento1", "elemento2", "elemento3"],
"dict_key": {
"nested_field": "valor anidado",
"nested_number": 100
}
}
Mecanismo de guardado
Al trabajar con PickleDB, todos los datos se cargan en memoria al inicializar la base. Los cambios se aplican al objeto en memoria y luego, según la configuración, se guardan en el archivo:
- Con
auto_dump=True— el guardado ocurre después de cada operación de escritura - Con
auto_dump=False— se requiere llamar manualmente al métododump()
Referencia completa de métodos y funciones de PickleDB
Métodos principales para trabajar con datos
| Método | Descripción | Ejemplo de uso |
|---|---|---|
set(key, value) |
Guarda un valor con una clave | db.set('nombre', 'Juan') |
get(key) |
Obtiene el valor de una clave | nombre = db.get('nombre') |
exists(key) |
Verifica si una clave existe | if db.exists('nombre'): |
rem(key) |
Elimina una clave y su valor | db.rem('nombre') |
getall() |
Devuelve todas las claves | claves = db.getall() |
totalkeys() |
Devuelve la cantidad de claves | cantidad = db.totalkeys() |