【问题标题】:How can I extract a key value without loading entire json file如何在不加载整个 json 文件的情况下提取键值
【发布时间】:2021-08-22 11:44:44
【问题描述】:

我得到了一个巨大的 JSON 文件列表,是否可以在 python 请求中不加载整个 json 文件的情况下提取键值。 This is how it looks

【问题讨论】:

  • GSON 是一个库,可以处理大文件。可能对你没有帮助,但我想提一下你发布的文件有 1.8MB 大,绝对可以毫无问题地处理。
  • @Jakob GSON 是一个 Java 库 - 不是吗?见github.com/google/gson
  • @balderman 对不起,你是对的 XD 我的大脑刚刚处于 Java 模式。但是 1.8MB 仍然可以毫无问题地处理 python。
  • @Jakob 我必须遍历数十万个 json,因此加载每个文件可能很耗时

标签: python json python-requests


【解决方案1】:

您需要增量 JSON 解析器或流式 JSON 解析器,例如 yajl-py。但是,它总是从头开始,所以如果你的关键是文件的最后,这种方法对于从磁盘或网络加载没有多大帮助。

直到 key 的所有 JSON 内容都必须通过解析器的内存,但不是一次全部在内存中。

正如@Jacob 在 cmets 中提到的,我不会将 1.8 MB 视为“巨大”文件。我已经在处理几个 GB 范围内的文件了。这绝对是您需要考虑耗尽物理 RAM 的地方。

【讨论】:

  • 幸运的是它在上面??
  • 我必须遍历数十万个 json,因此加载每个文件可能很耗时
  • 在这种情况下,增量解析器真的可以提供帮助。
猜你喜欢
  • 1970-01-01
  • 2013-11-21
  • 2012-08-05
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多