2013-07-11 165 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

謝謝你,這是非常豐富的! –