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