我有一个12GB的文件,其中每一行都是一个JSON对象,格式如下:
{
"name": "abc",
"val1":500,
"val2":30,
"val3":{
"topic1":{
"val4":["abc","xyz"],
"val5":["asdf"]
}
}
}
不幸的是,这是对象结构,无法更改。在
假设这个文件中有另一行:
^{pr2}$我现在需要合并具有相同名称的对象,以便获得一个形式为的对象:
{
"name": "abc",
"val1":800,
"val2":40,
"val3":{
"topic1":{
"val4":["abc","xyz"],
"val5":["asdf"]
},
"topic2":{
"val4":["hello","world"],
"val5":["test"]
}
}
}
我正在逐行读取文件并加载Python中每行的JSON对象。所以每一行基本上都变成一个Python dict()
。然后,我将这个对象存储在MongoDB集合中,如果文件中出现另一个同名的对象,我将更新Mongo记录,以便像上面的示例一样合并它。在
我试图遵循与Integrating multiple dictionaries in python (big data)中相同的方法,但是我使用Mongodb来适应一些值的对象结构。然而,即使对于一个400 MB的示例文件,这也是非常缓慢的。在
有什么方法可以做得更好,也许使用某种并行处理?在
这段代码应该有帮助。在
不过,你的问题很模糊,所以这是我对你所要完成的事情的看法。在
编辑:我只是连接字典,但是您可以在
.append(myline)
发生的部分实现更复杂的合并逻辑。在相关问题 更多 >
编程相关推荐