当前位置: 首页 > 面试题库 >

有没有一种内存高效且快速的方法来在python中加载大json文件?

祁驰
2023-03-14
问题内容

我有一些500MB的json文件。如果我使用“平凡”的json.load一次加载所有内容,它将消耗大量内存

有没有办法部分读取文件?如果它是文本行分隔文件,则可以在行上进行迭代。我正在寻找一个比喻。

有什么建议?谢谢


问题答案:

更新资料

请参阅其他答案以获取建议。

2010年的原始答案,现在已经过时

简短的回答:不。

正确地分割json文件将需要对json对象图有深入的了解。

但是,如果您有此知识,则可以实现一个类似文件的对象,该对象包装json文件并吐出适当的块。

例如,如果您知道json文件是单个对象数组,则可以创建一个包装json文件并返回数组块的生成器。

您必须进行一些字符串内容解析,以正确获取json文件的分块。

我不知道是什么产生了您的json内容。如果可能,我会考虑生成多个可管理文件,而不是一个大文件。



 类似资料:
  • 问题内容: 我想生成一个以字母作为键的字典,类似 生成该字典而不是我必须键入它的快速方法是什么? 谢谢你的帮助。 编辑 谢谢大家的解决方案:) nosklo的 解决方案可能是最短的 另外,感谢您提醒我有关Python字符串模块的信息。 问题答案: 我发现此解决方案更加优雅:

  • 我正试图写一个程序,可以下载视频从Reddit帖子。我相信Reddit会分别存储每个帖子的音频和视频,所以我现在正在下载mp3和mp4,然后将它们结合起来制作最终的视频文件。我不太熟悉音频或视频文件或它们是如何存储的,但我认为将两者结合起来会很快计算出来。 然而,合并部分是非常缓慢的,我想知道是否有一个更快的方式,将无声的视频剪辑与音频文件结合,并将其写入我的驱动器? 我目前正在使用moviepy

  • 问题内容: 以下是一些HTML ASCII代码: http://www.ascii.cl/htmlcodes.htm 我有一个看起来像的字符串 用撇号替换该ascii代码的最佳方法是什么? 问题答案: 使用字符串解码。

  • 问题内容: 我的文件中有1亿条记录,需要一种有效且最快的方法来从中的文件读取数组数组。 文件看起来像: 我想逐行读取此文件为: 首先阅读: 然后: 依此类推:’ 我如何读取这样的文件,我知道它看起来并不完全像文件,但是我需要以另存为JSON的这种格式读取该文件 问题答案: 您可以使用JSON Processing API(JSR 353) 来以流方式处理数据:

  • 本文向大家介绍在Android中高效的加载大图的方法示例,包括了在Android中高效的加载大图的方法示例的使用技巧和注意事项,需要的朋友参考一下 将大图加载到内存中总是令人痛苦,因为我们经常会在应用的崩溃报告中看到OOM(Out Of Memory)的bug。大家都知道,Android系统的内存有限。我们必须牢记这一点。 stackoverflow上有很多关于大图加载的问题,当你的应用程序遇到O

  • 所以我在Protege中构建了一个本体,它有注释和子注释。我的意思是,一个概念可能有一个定义,而这个定义可能有一个注释。 我正在尝试使用Flask应用程序(我正在使用Python解析本体文件)使本体易于查询,但我似乎无法快速获得所有的注释和子注释。 我开始使用包,但它要求您自定义每个单独的注释属性(您不能仅仅获得所有注释属性的列表,因此如果添加类似的属性,您必须返回代码并添加,否则将不会获得它)。