我有一个巨大的(400MB)initial_data.json文件。 Django在尝试加载这个文件时耗尽了所有的记忆。
连连呢?当然有人在那里有他们使用的大型initial_data文件。我考虑将其转换为xml文件,但我不知道Django是否会尝试将所有内容加载到内存中,而且我还没准备好在不确定的情况下尝试它。
答案 0 :(得分:0)
当你加载一个json文件时,django通过simplejson路由它,最终会这样做:
return loads(fp.read(), ...)
(来自django.utils.simplejson)
换句话说,整个文件在传递给解码器之前被读取(fp.read()
)。似乎可以(但不是微不足道)修改simplejson一次读取一点文件。
但是,XML序列化程序使用pulldom,它显然“流式传输”XML文件。因此,它应该是更高的内存效率。