2014-10-21 123 views
1

假設我有很多json行要處理,而且我只關心json行中的特定字段。從python中提取json的特定字段

{blablabla, 'whatICare': 1, blablabla} 
{blablabla, 'whatICare': 2, blablabla} 
.... 

有什麼辦法來提取這些JSON行whatICare withoud loads呢?由於json行很長,所以從json構建對象可能會很慢。

+0

另一種選擇!如果你有巨大的Json文件。將Json文件存儲到MYSQL DB,您可以優化您的查詢以獲得您關心的內容。但是,我不確定這是否是比較下述選項的最佳方式。 – user3378649 2014-10-21 22:41:12

回答

2

沒有編寫自己的解析代碼,沒有任何可靠的方法。

但是退房ujson!它比python內置的json庫快10倍,這有點慢。

+1

在我以前使用大型JSON數據的經驗中,解碼實際上足夠快;瓶頸仍在從磁盤讀取文件。 – poke 2014-10-21 22:38:33

0

不,您將不得不加載並解析JSON,然後才能知道里面的內容並能夠過濾出所需的元素。這就是說,如果你擔心內存,你可以使用ijson這是一個迭代解析器。它不是一次加載所有內容,它只能加載下一次迭代所需的內容。所以,如果你的文件包含一個對象數組,你可以一次加載和解析一個對象,減少內存影響(因爲你只需要在內存中保存一個對象,加上你真正關心的數據)。但它不會變得更快,也不會奇蹟般地跳過你不感興趣的數據。