Como usar o banco de dados TinyDB no Python

Como usar o banco de dados TinyDB no Python

Este artigo abordará um guia sobre a instalação e o uso do “Tinydb”Módulo que pode ser usado para criar e gerenciar bancos de dados no formato de arquivo json. Disponível como um módulo de terceiros para programas Python, Tinydb está escrito em python puro e vem com muitas funções úteis que podem ser usadas para consultar e modificar arquivos de banco de dados. Ele não suporta consultas de estilo SQL, mas usa sua própria API Pitônica para pesquisar arquivos de banco de dados. Tinydb Não exige que você crie um servidor de banco de dados e tudo pode ser acessado diretamente através de arquivos armazenados em um dispositivo de armazenamento sem a necessidade de uma conexão do servidor. Além de documentos ou objetos Python do tipo dicionário, ele também suporta tabelas para que você possa armazenar dados em várias tabelas e manter cada tabela independente de outras pessoas.

Instalando o TinyDB no Linux

O TinyDB está disponível em repositórios oficiais do Ubuntu, para que você possa instalá -lo no gerenciador de pacotes usando o seguinte comando:

$ sudo apt install python3 tinydb

Você pode instalar Tinydb Em outras distribuições Linux do gerenciador de pacotes. Um método alternativo para instalar Tinydb no Ubuntu e em outras distribuições Linux é usar o “pip" gerenciador de pacotes.

Você pode instalar o Pip Package Manager no Ubuntu usando o seguinte comando:

$ sudo apt install python3-pip

Você pode procurar o gerenciador de pacotes PIP em repositórios oficiais da sua distribuição Linux e instalá -lo a partir daí. Você também pode instalar o Pip Package Manager seguindo as instruções oficiais de instalação disponíveis aqui. Depois que o gerenciador de pacotes PIP estiver instalado no seu sistema Linux, use o seguinte comando para instalar Tinydb módulo:

$ pip3 install tinydb

Sintaxe e uso básicos

Para criar um novo JSON arquivo de banco de dados suportado por Tinydb, Use as seguintes declarações Python:

De Tinydb Import tinydb
db = tinydb ('db.JSON ')
impressão (dB)

A primeira declaração importa o módulo TinyDB principal para que seus métodos possam ser usados ​​em um programa Python. Em seguida, uma nova instância da classe TinyDB é criada fornecendo um “.arquivo json ”como o argumento principal. Esta declaração criará um novo banco de dados ou carregará um banco de dados JSON existente criado pelo TinyDB.

Depois de executar a amostra de código acima, você deve obter a seguinte saída:

Como um novo banco de dados foi criado, atualmente não há documentos ou tabelas de dados no banco de dados. Para inserir um novo documento (Python Dictionary) na tabela, use o seguinte código:

De Tinydb Import tinydb
db = tinydb ('db.JSON ')
dB.inserir ('name': 'John', 'rank': 2)
dB.inserir ('nome': 'Peter', 'rank': 1)
impressão (dB)

O método "Inserir" pode ser usado para inserir documentos ou dicionários no banco de dados. Você precisa fornecer um dicionário como argumento com o par de valores-chave exigido. Depois de executar a amostra de código acima, você deve obter a seguinte saída:

Como você pode ver na saída, o banco de dados agora contém dois documentos, atribuídos à tabela "_default". Se você abrir o “dB.JSON ”Arquivo em um editor de texto, deve ficar assim:

Para atribuir um documento a uma tabela específica, você precisará criar uma nova tabela primeiro. Você pode criar uma nova tabela chamando o método "tabela". Aqui está uma amostra de código:

De Tinydb Import tinydb
db = tinydb ('db.JSON ')
dB.inserir ('name': 'John', 'rank': 2)
dB.inserir ('nome': 'Peter', 'rank': 1)
tabela = dB.Tabela ('frutas')
mesa.inserir ('maçãs': 50)
impressão (dB)

Como você pode ver na amostra de código, o método "Tabela" foi chamado para criar uma nova tabela que será armazenada no banco de dados. Você só precisa fornecer um nome para ele como um argumento. Depois que uma nova tabela é criada, o restante do procedimento é o mesmo. Em vez de chamar o método "Inserir" no banco de dados padrão, agora você chama o método de inserção na tabela recém -criada.

Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

O banco de dados agora contém duas tabelas. Se você abrir o banco de dados em um editor de texto, verá uma nova tabela adicionada ao banco de dados:

Observe que todos os métodos que podem ser chamados no banco de dados padrão também podem ser usados ​​com tabelas.

Consultando documentos no banco de dados

Para pesquisar documentos no banco de dados, você precisará importar a classe “Consulta” do módulo TinyDB e usar o método de “pesquisa”. Aqui está uma amostra de código:

De Tinydb Import tinydb, consulta
db = tinydb ('db.JSON ')
dB.inserir ('name': 'John', 'rank': 2)
dB.inserir ('nome': 'Peter', 'rank': 1)
Q = Query ()
resultado = dB.Pesquisar (q.nome == 'John')
Imprimir (resultado)

Uma nova instância da classe "consulta" é criada e, em seguida, um método de pesquisa é chamado no banco de dados. Usando a notação de ponto, você pode selecionar uma chave ou campo de documento e adicionar o termo de pesquisa necessário no lado direito do lado direito. Depois de executar a amostra de código acima, você deve obter a seguinte saída:

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

Se não houver correspondências, uma lista vazia será devolvida. Você também pode chamar o método de pesquisa em uma tabela criada manualmente.

De Tinydb Import tinydb, consulta
db = tinydb ('db.JSON ')
dB.inserir ('name': 'John', 'rank': 2)
dB.inserir ('nome': 'Peter', 'rank': 1)
tabela = dB.Tabela ('frutas')
mesa.inserir ('maçãs': 50)
Q = Query ()
resultado = tabela.Pesquisar (q.Maçãs < 100)
Imprimir (resultado)

O exemplo de código mostra o uso do método de pesquisa em uma tabela específica. Aviso no código de que um operador de comparação diferente ('<' sign) has been used to query the database. After running the above code sample, you should get the following output:

['Apples': 50]

Atualizando e removendo documentos

Para atualizar um documento existente no banco de dados, você precisa usar o método de "atualização". Aqui está uma amostra de código:

De Tinydb Import tinydb, consulta
db = tinydb ('db.JSON ')
dB.inserir ('name': 'John', 'rank': 2)
dB.inserir ('nome': 'Peter', 'rank': 1)
Q = Query ()
dB.atualização ('rank': 3, q.nome == 'John')
Imprimir (dB.todos())

Usando a classe de consulta explicada acima, você pode atualizar o valor de um campo existente no banco de dados. Passe o valor a ser modificado como o primeiro argumento para o método de atualização e depois passe a consulta como o segundo argumento. O método "tudo" pode ser usado para buscar todos os documentos disponíveis no banco de dados. Depois de executar a amostra de código acima, você deve obter a seguinte saída onde a classificação de "John" foi atualizada para 3 a partir de 2:

['nome': 'John', 'rank': 3, 'name': 'Peter', 'rank': 1]

Para remover um documento, você precisará usar o método "Remover" e a sintaxe de consulta explicada acima. Aqui está uma amostra de código:

De Tinydb Import tinydb, consulta
db = tinydb ('db.JSON ')
dB.inserir ('name': 'John', 'rank': 2)
dB.inserir ('nome': 'Peter', 'rank': 1)
Q = Query ()
dB.Remova (q.nome == 'John')
Imprimir (dB.todos())

Você precisa passar uma consulta para o método de remoção para que documentos associados possam ser correspondidos e removidos do banco de dados. Depois de executar a amostra de código acima, você deve obter a seguinte saída:

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

Conclusão

O TinyDB fornece inúmeras funções de conveniência e auxiliar para criar e gerenciar bancos de dados baseados em JSON. Embora você possa lidar com arquivos JSON usando o módulo "JSON" em Python, o TinyDB é muito mais do que isso e inclui um sistema de consulta abrangente que pode ser usado para obter resultados rapidamente com instruções simples de um liner.