保存按键排序的类似于架子字典的对象

时间:2018-12-18 13:42:39

标签: python ordereddictionary shelve

我有一本庞大的字典     100 000键和大型numpy数组作为值。我想将其另存为文件,以加快加载速度。

我尝试将其作为泡菜倾倒,但内存不足。然后尝试json.dump,但不支持将Numpy数组作为值。

最后,我尝试使用架子,但无法按顺序保存它。

我有以下代码:

with closing(shelve.open('file1.shelf', 'c')) as f:
     for id in ids:
         f[id] = np.array().shape(300, 27, 3)

我想按顺序相对于ID保存架子类字典对象。因此,我想按ID排序,然后将其另存为文件。 我可以在货架对象上使用OrderedDict还是应该针对此特定问题使用另一种方法?

img_dic = collections.OrderedDict(sorted(f.items()))

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过从numpy数组的字典中创建一个Numpy Dataframe?字典的键可以是索引列。数据框将有多种保存到磁盘的方法。

也许to_pickle方法更有效。 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_pickle.html

否则,您可以另存为实木复合地板文件或其他多种格式