2014-10-21 122 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这是一个迭代解析器。它不是一次加载所有内容,它只能加载下一次迭代所需的内容。所以,如果你的文件包含一个对象数组,你可以一次加载和解析一个对象,减少内存影响(因为你只需要在内存中保存一个对象,加上你真正关心的数据)。但它不会变得更快,也不会奇迹般地跳过你不感兴趣的数据。