如何在python中实现数据库?

时间:2017-09-12 13:13:38

标签: python json database

我想创建一个数据库,因为我有很多项目,每个项目都有很多属性(一个大型数据集)。

我首先尝试为每个元组(attribute0,attribute1)创建一个JSON文件,但是在很大程度上它是不可能的。然后,我尝试将数据拆分为多个JSON文件:每个属性一个文件,每个值具有唯一ID,每个元组一个(attribute0,attribute1)仅使用值id。这样做效果更好,但效果不是很好,因为每次我必须阅读单个值时,我必须阅读所有文件。我还尝试根据值的哈希值分割我的文件,问题现在是属性之间的链接。我不知道在哪里可以找到特定的索引,因为我必须阅读每个文件才能找到好的索引。

2 个答案:

答案 0 :(得分:1)

您可以使用可以立即设置的SQLite数据库。 Python的sqlite3模块非常易于使用。以下示例来自docs

import sqlite3
conn = sqlite3.connect('example.db')

c = conn.cursor()

# Create table
c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')

# Insert a row of data
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

SQLite数据库适用于几GB的数据大小。因为你之前使用JSON文件听起来像这可以解决你的问题。这个article为SQLite提供了一个很好的介绍。

答案 1 :(得分:0)

我不考虑创建新的数据库系统,因为您可以使用几个非常可靠的开源数据库。对于你的情况,我推荐 tinydb ,一个用python编写的文档数据库,它只是使用一个json文件作为存储。

https://github.com/msiemens/tinydb

使用非常简单,并且有可靠的文档。以下是the docs中显示典型用法的代码示例:

>>> from tinydb import TinyDB, Query
>>> db = TinyDB('path/to/db.json')
>>> User = Query()
>>> db.insert({'name': 'John', 'age': 22})
>>> db.search(User.name == 'John')
[{'name': 'John', 'age': 22}]