ОПЕРАЦИЯ · ПРЕОБРАЗОВАНИЕ
Преобразовать JSON-массив в JSONL
Записать каждый элемент массива отдельной строкой.
Предварительные условия
Python 3; array.json — массив; файл целиком помещается в память.
Команда
python3 - <<'PY'
import json
with open("array.json", encoding="utf-8") as f: data = json.load(f)
if not isinstance(data, list): raise ValueError("Ожидался массив")
with open("converted.jsonl", "x", encoding="utf-8", newline="\n") as f:
for item in data:
f.write(json.dumps(item, ensure_ascii=False, allow_nan=False) + "\n")
PYОбъяснение аргументов
ensure_ascii=False сохраняет UTF-8; allow_nan=False отклоняет нестандартные числа.
Ожидаемый результат
По одному JSON-значению на строку.
Проверка
Число строк равно длине массива; разберите каждую строку.
Распространённые ошибки
- Для огромного массива нужен потоковый парсер; стандартный json.load не потоковый.
Обратимость
Исходник остаётся.