【问题标题】:Alternative Way to Load Large Json File加载大型 Json 文件的替代方法
【发布时间】:2017-12-15 03:37:24
【问题描述】:

我正在尝试将一个大的 json 文件(大约 4G)加载为 pandas dataframe,但以下方法不适用于大约 2G 的文件。有没有替代方法?

data_dir = 'data.json' my_data = pd.read_json(data_dir, lines = True)

我尝试了ijson,但不知道如何将其转换为dataframe

【问题讨论】:

  • 你的内存是什么?你试过内置的json.loads吗?
  • 你用的是32位还是64位的python?
  • 对于上面的 cmets,我使用的是 8GB 的​​ 64 位,我还剩下 55%,所以理想情况下它应该可以工作:)。无论如何,感谢您对json.loads 的建议,它现在正在工作。
  • 不是因为磁盘上的文件是4GB,内存中的表示是4GB。 Python 为每个字符串创建一个对象,该对象可能比磁盘上的位置更多。

标签: python json pandas large-files ijson


【解决方案1】:

在这种情况下,将大文档加载到内存中可能不是最好的方法。 JSON 的这种大小可能需要您使用不同的方法进行解析。尝试改用流式解析器。一些选项

https://pypi.org/project/json-stream-parser/

https://pypi.org/project/ijson/

关键是不要将整个文档加载到内存中。这类似于 XML 世界中的 SAX 解析。

我不是 python 专家,但是,应该有一个很好的库可以为你做这件事。

【讨论】:

    猜你喜欢
    • 2017-08-06
    • 1970-01-01
    • 2014-06-30
    • 2016-07-24
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2020-10-08
    • 2018-10-18
    相关资源
    最近更新 更多