ОПЕРАЦИЯ · РЕСУРСЫ
Ограничить память обработки
Обработать JSONL построчно с лимитом размера одной записи.
Предварительные условия
Python 3; один JSON на физическую строку; лимит 1 MiB.
Команда
python3 - <<'PY'
import json
limit = 1024 * 1024
count = 0
with open("example.jsonl", "rb") as f:
while line := f.readline(limit + 1):
if len(line) > limit: raise ValueError("Слишком длинная запись")
json.loads(line.decode("utf-8"))
count += 1
print(count)
PYОбъяснение аргументов
readline(limit+1) ограничивает буфер строки; json.loads обрабатывает только одну запись.
Ожидаемый результат
Количество записей при ограниченном входном буфере.
Проверка
Проверьте поведение на записи длиннее лимита; для жёсткого лимита памяти нужен лимит процесса ОС.
Распространённые ошибки
- Объект JSON занимает больше памяти, чем его текст; глубина вложенности тоже важна.
Обратимость
Без изменений.