Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.112 — 2026-10-24
NEWS 约 1 分钟

大JSON别再整文件读入内存

181MB 的 JSON,解析后让内存从 43MB 涨到 808MB;流式读取可避开这笔开销。

IMAGE — KDnuggets

一个文件在硬盘上看着不大,读进 Python 后却可能突然撑满内存。原因很简单:常用的 json.load() 会一次性把整份 JSON——一种用文本保存对象、数组和数值的通用格式——变成字典、列表和字符串。即使你只需要其中几个字段,其他内容也会一起留在内存里。

据 KDnuggets 记录,教程在 Google Colab 中处理约 181MB 的 San Francisco City Lots GeoJSON 时,进程内存从约 43MB 升到 808MB。数据里庞大的几何坐标也被完整载入,尽管分析只需要每块土地的少数字段。换句话说,磁盘上的文件大小,并不能代表解析后的真实内存账单。

替代办法是 ijson——Python 的增量式 JSON 解析库。它像流水线一样逐个读取 features 数组中的对象,提取所需属性后即可释放,无需同时保存完整对象树。这样,峰值内存主要取决于单条记录,而不是整份文件。这个案例没有给出流式方案的具体内存数字,但已说明一个实用原则:面对大型 JSON,先考虑逐条处理,不要默认整文件读入。


供稿材料 SOURCES — 1

← 返回 2026-10-24 · 数据板块