【问题标题】:Parse a large json response in chunks [duplicate]分块解析大型json响应[重复]
【发布时间】:2018-09-07 23:36:04
【问题描述】:

是否有一种可接受的方式来解析 Python 中的大型 json 响应/文件?明确地说,我的意思是:

  1. 无法一次将数据全部加载到内存中。
  2. 除了合法的 json 数据,你对数据一无所知。
  3. 输出格式应该是易于读取的块(例如,由换行符或 YAMl 分隔。)

    这是经典的 json 问题,我已经看过很多其他关于此的帖子,但它们通常围绕特定的 json 表示。这里的关键是你对 json 一无所知

    我知道如何自己构建解析器来执行此操作,但这样做真的很糟糕。我希望已经有一个公认的 Python 解决方案。

    谢谢。

【问题讨论】:

  • 有多个库可以做到这一点。它们中的大多数都提供了类似 SAX 的 API(大致相当于其他语言的类似 SAX 的 JSON 解析器),但 iljson 提供了一个模仿 ElementTree 的 iterparse 的 API,这对于 Python 来说要好得多。
  • @abarnert 我一直在搞乱 ijson。似乎很容易解码 json 流,但是有什么地方可以用来对产生的事件流进行编码吗?

标签: python json python-3.x parsing chunks


【解决方案1】:

你可以试试ijson。它提供了基于事件的迭代器,比从头编写自己的迭代器更容易。

【讨论】:

  • 我一直在搞乱 ijson。似乎很容易解码 json 流,但是有什么地方可以用来对产生的事件流进行编码吗?
  • @JamieMarshall 你看到 ObjectBuilder 类了吗?请参阅items() 函数源了解如何使用它。或者,如果它适合您的目的,请使用 items()
猜你喜欢
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 2018-01-16
  • 2014-07-12
  • 2018-07-15
相关资源
最近更新 更多