2013-07-11 130 views
1

我有一个来自网页抓取项目的大型json文件,我一直在做。现在我正在尝试使用JSON数据构建Web前端。不过,我很难找出构建它的最佳方法。处理大型json文件

JSON文件看起来是这样的:

{ 
    "_id" : { "$oid" : "55d5c85a96cc6212bdd4ca08" }, 
    "name" : "Example", 
    "url" : "http://example.com/blahblah", 
    "ts" : { "$date" : 1073423706824 } 
} 

我有几个问题:

  1. JSON文件将被添加到加班,所以将最好的解决办法是定期添加到一个数据库,或只是将json文件保存在云中的某个地方,并在需要时从中提取?

  2. 如果我把它放在一个数据库中,我如何定期将它添加到数据库中,而不会减慢网站的前端?我知道我可以使用类似json_decode的东西,但我大多只看到几行json的例子,它可以用于更大的json文件吗?

  3. 如果我把它放在一个数据库中,关系数据库会更快/更高效还是类似mongodb?

+4

定义 “大JSON文件”。多大?多GB?它可以分成几个部分,只需要所需的零件?数据库*可能是一个解决方案,但我们对您的需要不够了解。 –

回答

2

在这里做webscraping自己的很多之后就是我会建议:

  1. 你的关系和非关系数据库之间做出选择。如果你的数据不断变化,参数数量未知,我建议使用MongoDB(因为它几乎是JSON,完全无模式,所以很容易添加新的方面)。如果你的数据是全部相同的格式,那么使用关系数据库是向前迈出的一大步。 PostgreSQL和MariaDB是很好的开源选项。

  2. 将您当前的JSON数据转换为选定的数据库格式并插入它。

  3. 开始直接向数据库抓取,尽量不要再使用JSON文件。

  4. 从数据库中读取您的前端。如果你选择Python,你可以看看flask作为一个很好的选择。

还有以前的一些深入的答案张贴到静态文件与数据库Store static data in an array or in a database一个非常有趣的问题。

如果您将静态文件排除在等式之外并使用数据库,那么这里就是您的3个问题的答案;

  1. 只需使用数据库。

  2. 添加到数据库很简单。一旦你建立起来了,你的刮刀可以直接和相关的驱动程序一起写下来。再一次,不需要JSON文件。

  3. 这一切都取决于你的数据

+0

谢谢你,这是非常丰富的! –