将列表的python字典转换为SQLite数据库

时间:2016-02-02 18:31:45

标签: python sqlite dictionary

我有一个python字典,目前使用cPickle进行pickle,但是太大(在磁盘上大约8Gb)要立即加载。由于我不一定需要整个字典,所以我想使用SQLite或其他数据库系统来存储和访问这些数据。

当前字典格式为{id:(list)},其中id始终为整数,列表始终为165浮点数。浮点数的顺序很重要,因此每个浮点数都应该存储在一列中。

只有我将访问此数据,并且只使用python。我怎样才能最容易地将其写入数据库,然后从id中检索列表?

1 个答案:

答案 0 :(得分:1)

以下是使用3个浮点数的演示。你可以推断为165。

>>> import sqlite3
>>> conn = sqlite3.connect(':memory:')
>>> c = conn.cursor()
>>> c.execute('create table t (id,a,b,c);')
<sqlite3.Cursor object at 0x01418420>
>>> conn.commit()
>>> d = {0:[1.0,2.0,3.0]}
>>> import itertools as it
>>> c.execute('insert into t values (?,?,?,?)',[i for i in it.chain(d.keys(),*d.values())])
<sqlite3.Cursor object at 0x01418420>
>>> conn.commit()
>>> results = c.execute('select * from t where id = 0').fetchall()
>>> results
[(0, 1.0, 2.0, 3.0)]