在python中读取巨大的json文件

时间:2017-07-15 08:32:31

标签: python json memory

我无法阅读大型JSON文件。我的文件大小约为6GB。我已经尝试过ijson读取它像流一样 - 逐项 - 使用以下行:

f = open(path, 'rb')
for row in ijson.items(f, 'Row'):  
  //do something

我从python shell得到“内存错误”/“杀死”错误。我认为这不是一个内存问题,因为我的系统已经足够了。大约3GB的交换和20 GB的RAM。

现在我知道ijson读取了一个流但我的问题是整个6GB文件是一行,所以jitem.items也无济于事。任何人都可以建议我一个解决方案如何有效地阅读,而不会遇到内存问题。我的JSON看起来像这样

{Row:[{
    "Cell": [
        {
            "$": "blabla",
            "column": "blala",
            "timestamp": 1494589152912
        },
        {
            "$": "blal bla",
            "column": "blala",
            "timestamp": 1494589152916
        },
    ],
    "key": "blalaa"
}]}

0 个答案:

没有答案