Come utilizzare il database tinyDB in Python

Come utilizzare il database tinyDB in Python

Questo articolo coprirà una guida sull'installazione e l'utilizzo del "Tinydb"Modulo che può essere utilizzato per creare e gestire i database in formato di file JSON. Disponibile come modulo di terze parti per i programmi Python, Tinydb è scritto in puro python e viene fornito con molte funzioni utili che possono essere utilizzate per interrogare e modificare i file di database. Non supporta le query in stile SQL ma utilizza la propria API pitonica per la ricerca di file di database. Tinydb non richiede di creare un server di database e tutto può essere accessibile direttamente tramite file archiviati su un dispositivo di archiviazione senza necessità di una connessione server. Oltre ai documenti o agli oggetti Python di tipo di dizionario, supporta anche le tabelle in modo da poter archiviare i dati in più tabelle e mantenere ogni tabella indipendente da altre.

Installazione di tinyDB in Linux

TinyDB è disponibile nei repository ufficiali di Ubuntu, quindi è possibile installarlo dal gestore dei pacchetti utilizzando il comando seguente:

$ sudo apt Installa python3 tinydb

Puoi installare Tinydb In altre distribuzioni Linux dal gestore dei pacchetti. Un metodo alternativo da installare Tinydb In Ubuntu e altre distribuzioni Linux è utilizzare il "PIP"Gestione pacchetti.

È possibile installare PIP Package Manager in Ubuntu utilizzando il seguente comando:

$ sudo apt install python3-pip

Puoi cercare il gestore dei pacchetti PIP nei repository ufficiali della distribuzione Linux e installarlo da lì. È inoltre possibile installare il gestore dei pacchetti PIP seguendo le istruzioni di installazione ufficiali disponibili qui. Una volta installato il gestore dei pacchetti PIP sul sistema Linux, utilizzare il seguente comando per installare Tinydb modulo:

$ PIP3 Installa tinydb

Sintassi di base e utilizzo

Per creare un nuovo JSON file di database supportato da Tinydb, Usa le seguenti dichiarazioni di Python:

da tinydb import tinydb
db = tinydb ('db.json ')
Stampa (DB)

La prima istruzione importa il modulo principale tinydb in modo che i suoi metodi possano essere utilizzati in un programma Python. Successivamente, viene creata una nuova istanza di classe TinyDB fornendo un ".JSON ”File come argomento principale. Questa affermazione creerà un nuovo database o caricherà un database JSON esistente creato da TinyDB.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Da quando è stato creato un nuovo database, al momento non ci sono documenti o tabelle di dati nel database. Per inserire un nuovo documento (Python Dictionary) nella tabella, utilizzare il seguente codice:

da tinydb import tinydb
db = tinydb ('db.json ')
db.insert ('name': 'John', 'rank': 2)
db.insert ('name': 'peter', 'rank': 1)
Stampa (DB)

Il metodo "Insert" può essere utilizzato per inserire documenti o dizionari nel database. È necessario fornire un dizionario come argomento con la coppia di valore chiave richiesto. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Come puoi vedere nell'output, il database ora contiene due documenti, assegnati alla tabella "_default". Se apri il "db.JSON ”File in un editor di testo, dovrebbe sembrare così:

Per assegnare un documento a una tabella specifica dovrai prima creare una nuova tabella. È possibile creare una nuova tabella chiamando il metodo "tabella". Ecco un esempio di codice:

da tinydb import tinydb
db = tinydb ('db.json ')
db.insert ('name': 'John', 'rank': 2)
db.insert ('name': 'peter', 'rank': 1)
Tabella = db.Tabella ("frutti")
tavolo.insert ('' Apples ': 50)
Stampa (DB)

Come puoi vedere nell'esempio del codice, il metodo "Tabella" è stato chiamato per creare una nuova tabella che verrà archiviata nel database. Devi solo fornire un nome come argomento. Una volta creata una nuova tabella, il resto della procedura è lo stesso. Invece di chiamare il metodo "inserisci" nel database predefinito, ora si chiama il metodo Insert nella tabella appena creata.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Il database ora contiene due tabelle. Se si apri il database in un editor di testo, è necessario vedere la nuova tabella aggiunta al database:

Si noti che tutti i metodi che possono essere chiamati nel database predefinito possono essere utilizzati anche con le tabelle.

Interrogazione dei documenti nel database

Per cercare i documenti nel database, dovrai importare la classe "query" dal modulo tinydb e utilizzare il metodo "ricerca". Ecco un esempio di codice:

da tinydb import tinydb, query
db = tinydb ('db.json ')
db.insert ('name': 'John', 'rank': 2)
db.insert ('name': 'peter', 'rank': 1)
Q = query ()
risultato = db.Cerca (Q.name == 'John')
Stampa (risultato)

Viene creata una nuova istanza della classe "query" e quindi un metodo di ricerca viene chiamato nel database. Utilizzando la notazione Dot, è possibile selezionare una chiave o un campo del documento e aggiungere il termine di ricerca richiesto sul lato destro. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

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

Se non ci sono corrispondenze, verrà restituito un elenco vuoto. Puoi anche chiamare il metodo di ricerca su una tabella creata manualmente.

da tinydb import tinydb, query
db = tinydb ('db.json ')
db.insert ('name': 'John', 'rank': 2)
db.insert ('name': 'peter', 'rank': 1)
Tabella = db.Tabella ("frutti")
tavolo.insert ('' Apples ': 50)
Q = query ()
risultato = tabella.Cerca (Q.mele < 100)
Stampa (risultato)

Il campione di codice mostra l'utilizzo del metodo di ricerca su una tabella specifica. Si noti nel codice che un diverso operatore di confronto ('<' sign) has been used to query the database. After running the above code sample, you should get the following output:

["Apple": 50]

Aggiornamento e rimozione dei documenti

Per aggiornare un documento esistente nel database, è necessario utilizzare il metodo "Aggiorna". Ecco un esempio di codice:

da tinydb import tinydb, query
db = tinydb ('db.json ')
db.insert ('name': 'John', 'rank': 2)
db.insert ('name': 'peter', 'rank': 1)
Q = query ()
db.Aggiornamento ('rank': 3, q.name == 'John')
Stampa (db.Tutto())

Utilizzando la classe di query spiegata sopra, è possibile aggiornare il valore di un campo esistente nel database. Passare il valore da modificare come primo argomento al metodo di aggiornamento e quindi passare la query come secondo argomento. Il metodo "tutto" può essere utilizzato per recuperare tutti i documenti disponibili nel database. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output in cui il grado di "John" è stato aggiornato a 3 da 2:

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

Per rimuovere un documento, dovrai utilizzare il metodo "Rimuovi" e la sintassi della query spiegata sopra. Ecco un esempio di codice:

da tinydb import tinydb, query
db = tinydb ('db.json ')
db.insert ('name': 'John', 'rank': 2)
db.insert ('name': 'peter', 'rank': 1)
Q = query ()
db.Rimuovere (q.name == 'John')
Stampa (db.Tutto())

È necessario passare una query al metodo Rimuovi in ​​modo che i documenti associati possano essere abbinati e rimossi dal database. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

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

Conclusione

TinyDB offre numerose funzioni di convenienza e aiutante per creare e gestire i database basati su JSON. Mentre è possibile gestire i file JSON utilizzando il modulo "JSON" in Python, TinyDB è molto più di questo e include un sistema di query completo che può essere utilizzato per recuperare rapidamente i risultati con semplici istruzioni di fodera.