Перейти к содержанию

Открытие и перестройка огромных файлов JSON

jsonreshape — это бесплатное настольное приложение и инструмент командной строки с открытым исходным кодом для файлов JSON и JSON Lines (NDJSON), слишком больших, чтобы открыть их в обычном редакторе, — от 100 MB до нескольких гигабайт.

Установить Смотреть на GitHub

jsonreshape открывает файл JSON 2,1 GB с 6,5 млн записей, ищет по всем записям, фильтрует и экспортирует результат в CSV

Файл 2,1 GB с 6,5 млн записей. Часы под окном показывают реальное время; только фильтр ускорен в 8 раз, и это написано в строке под окном.

Чем он отличается

  • Ничто не загружается в память целиком. Многогигабайтный файл индексируется один раз (байтовые границы каждой записи), а затем читаются только те записи, которые вы просматриваете. Файл в 2 GB готов примерно за 3 секунды; 10 миллионов записей сортируются за 77 секунд, используя менее 400 MB оперативной памяти.
  • Исходный файл никогда не изменяется. Правки живут в отдельном слое; сохранение атомарно заменяет файл, по умолчанию сохраняя резервную копию .bak.
  • Автономно и конфиденциально. Ни телеметрии, ни доступа к сети — ваши данные никогда не покидают ваш компьютер.
  • Быстрое ядро, удобные инструменты. Ядро на Rust с запасной реализацией на чистом Python, настольное окно на PySide6 и CLI для скриптов.

Что можно делать

Задача Руководство
Открыть и просматривать файл JSON / JSON Lines размером 2–5 GB Открыть большой файл JSON
Преобразовать в CSV, Excel, SQLite, Parquet или Feather Преобразование JSON
Сравнить два файла JSON Сравнение файлов JSON
Исправить недопустимый / повреждённый файл JSON Исправление повреждённого JSON
Развернуть вложенный JSON в таблицу Развёртывание вложенного JSON
Разделить один большой файл / объединить много файлов Разделение и объединение JSON

Также включено: полнотекстовый поиск и поиск по регулярным выражениям, язык фильтров, сортировка по нескольким ключам, статистика полей с гистограммами, обнаружение дубликатов, создание и проверка JSON Schema и конструктор структуры с перетаскиванием. См. справочник CLI и Python API.

Установка одной строкой

Начиная с первого релиза:

pip install jsonreshape          # CLI + Python library
pip install "jsonreshape[gui]"   # add the desktop window

См. Установку для готовых сборок под Windows, сборки из исходного кода и необязательных дополнений Parquet / импорта.