处理大的dicts作为程序的主要目的

时间:2017-06-25 21:13:11

标签: python dictionary

我是python的新手,并且正在将程序作为我工作的有用工具。我有来自不同来源的杂乱,大量数据,如果我可以在收集数据集时存储数据集,这将节省大量时间。因此,我希望尽快将其整合到一起供个人使用,但是一旦我能够进行有效和安全的数据共享,我就会继续努力改进代码并将其打开以供我的同事使用。很可能,编码不会非常有效。

程序应该写入和读取(即搜索对象)6个数组的字典。理想情况下,程序还将格式化并将数据写入可以打印的固定布局文档。一个快速估计是"完成"字典产品将有300,000-400,000个项目。

考虑到字典的可变性及其大小,是将字典存储在json中的最佳方法吗?考虑到在大多数情况下,使用该程序的任何人都不会使用性能特别高的计算机,这会使客户端过载吗?

输入字符串:     citation value source origin stem equivalence

期望的输出:

  
      
  • ORIGIN1
        的 Stem1
          Source1:citation1 value1 equivalence1 ,citation3 value3 equivalence3 ;
          Source2:citation2 value2 equivalence2
      的茎2
        等等。
  •   

1 个答案:

答案 0 :(得分:1)

我认为dict不是您应该使用的工具 它用于存储映射。这里的数据量不是问题,300,000-400,000项是公平的但不是很大(如果你的数据主要是文本,你的大小和大小将小于740p电影的大小)。

但是如果你的数据最终应该是结构化的,为了被查询和操纵,那么那里已经存在特定且设计精良的工具。

具体来说这两个模块都包含在anaconda安装中:

    当数据已经具有固定架构时,
  • sqlite3将数据存储在数据库中
  • pandas及其数据框。它可以处理比sqlite3更少结构化的数据,可以读写数据库,并且具有很多很好的实用功能来进行数据清理。

    由于您似乎仍然不确定数据的最终架构,如果我是您,我会选择pandas,但这不仅仅是dict